SQL Server als Berechtigungsfehler im Trigger ausführen

Ich habe einen Auslöser, über den ich eine E-Mail über Aktualisierungen einer Zeile in einer Tabelle SalesClosing senden möchte. Jetzt hat der Benutzer (dbuser), der den Trigger ausführt, nur sehr eingeschränkte Berechtigungen. Ich möchte also, dass der Trigger als dbmailuser ausgeführt wird. Ein Benutzer, der zum Versenden von E-Mails berechtigt ist. Ich habe getestet, dass dbmailuser sp_send_dbmail ausführen kann, wenn er als dieser Benutzer angemeldet ist. Wenn der Trigger ausgelöst wird, kann sp_send_dbmail nicht ausgeführt werden. Also habe ich mich als dbuser angemeldet und EXECUTE AS LOGIN = 'dbmailuser' ausgeführt. und konnte sp_send_dbmail ausführen. Warum kann ich das nicht in einem Trigger tun? Ich benutze SQL Server 2008. Unten ist der Auslöser ddl.

alter TRIGGER SalesClosingTrigger ON SalesClosing
WITH EXECUTE AS 'dbmailuser'
for insert, update
AS
BEGIN
  EXEC msdb.dbo.sp_send_dbmail
  --@profile_name = 'Test_Email_Profile',
  @recipients='[email protected]',
  @body = 'This is a test for Database Mail.',
  @body_format = 'TEXT',
  @subject = 'Database Mail Test'
END 
GO

Antworten auf die Frage(3)

Ihre Antwort auf die Frage