Ho un trigger in cui voglio inviare un'e-mail sugli aggiornamenti di una riga in una tabella SalesClosing. Ora l'utente (dbuser) che esegue il trigger ha autorizzazioni molto limitate. Quindi voglio che il trigger venga eseguito come dbmailuser. Un utente che ha i diritti per inviare email. Ho verificato che dbmailuser può eseguire sp_send_dbmail dopo aver effettuato l'accesso come tale utente. Tuttavia, quando il trigger si attiva, viene visualizzato un errore che non è possibile eseguire sp_send_dbmail. Così ho effettuato il login come dbuser , eseguito EXECUTE AS LOGIN = 'dbmailuser'; ed è stato in grado di eseguire sp_send_dbmail. Ora, perché non posso farlo in un trigger. Sto usando SQL Server 2008. Di seguito è il trigger ddl.sql viene eseguito come errore di autorizzazione nel trigger
alter TRIGGER SalesClosingTrigger ON SalesClosing
WITH EXECUTE AS 'dbmailuser'
for insert, update
AS
BEGIN
EXEC msdb.dbo.sp_send_dbmail
[email protected]_name = 'Test_Email_Profile',
@recipients='[email protected]',
@body = 'This is a test for Database Mail.',
@body_format = 'TEXT',
@subject = 'Database Mail Test'
END
GO
+1 non è ogni giorno che incontro qualcuno che capisca il contesto ESEGUI! –
+1 Cancella e destra nel punto –