sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan udføres sp_send_dbmail, mens du begrænser tilladelser

Din tilgang er OK, men din wrapper-proc skal være i msdb-databasen. Derefter udfører du "EXEC msdb.dbo._TestSendMail"

Dette efterlader stadig spørgsmålet om tilladelser på dbo._TestSendMail i msdb. Men public/EXECUTE vil være nok:det afslører kun de 3 parametre, du har brug for.

Hvis du er i tvivl, så tilføj MED KRYPTERING. Dette er godt nok til at stoppe nogen uden sysadmin-rettigheder i at se koden

USE msdb
GO
CREATE PROCEDURE [dbo].[_TestSendMail]
(
  @To NVARCHAR(1000),
  @Subject NVARCHAR(100),
  @Body NVARCHAR(MAX)
)
-- not needec WITH EXECUTE AS OWNER
AS 
    BEGIN
        EXEC dbo.sp_send_dbmail @profile_name = N'myProfile',
            @recipients = @To, @subject = @Subject, @body = @Body
    END


  1. Hvordan laver jeg sikkerhedskopier i MySQL?

  2. JDBC - Oracle ArrayIndexOutOfBoundsException

  3. Hvad er forskellen mellem Scope_Identity(), Identity(), @@Identity og Ident_Current()?

  4. SQL Server-forespørgsel timeout afhængigt af Where-klausul