Я пытаюсь отправить почту из базы данных, но получаю EXECUTE permission denied on the object 'sp_send_dbmail' database 'msdb', schema 'dbo'.
. Я использую следующий код:
SELECT SUSER_NAME(), USER_NAME();
Create USER kyle_temp FOR LOGIN Foo
EXECUTE AS USER = 'kyle_temp';
SELECT SUSER_NAME(), USER_NAME();
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Mail Profile',
@recipients = 'test@test.com',
@subject = 'Test',
@body = 'Test'
REVERT;
DROP USER kyle_temp
Вход в Foo показывает, что он сопоставлен с пользователем Foo в msdb. Когда я смотрю на пользователя foo в msdb, я вижу, что у него проверено «DatabaseMailUserRole» и есть Execute on dbo sp_send_dbmail
.
Что мне не хватает?
источник
msdb.dbo.sp_send_mail
в этом локальном теле SP. Пусть триггер вызовет этот локальный SP. Кодовый знак ИП.