SQL Server выполнить как ошибки разрешения в триггере
У меня есть триггер, где я хочу отправить электронное письмо об обновлениях строки в таблице SalesClosing. Теперь пользователь (dbuser), который выполняет триггер, имеет очень ограниченные разрешения. Поэтому я хочу, чтобы триггер выполнялся как dbmailuser. Пользователь, у которого есть права на отправку электронной почты. Я проверил, что dbmailuser может выполнять sp_send_dbmail при входе в систему как этот пользователь. Когда срабатывает триггер, я получаю сообщение об ошибке: невозможно выполнить sp_send_dbmail. Поэтому я вошел как dbuser, запустил EXECUTE AS LOGIN = 'dbmailuser'; и был в состоянии выполнить sp_send_dbmail. Теперь, почему я не могу сделать это в триггере. Я использую sql server 2008. Ниже приведен триггер 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