Estou tentando enviar email do banco de dados, mas estou recebendo EXECUTE permission denied on the object 'sp_send_dbmail' database 'msdb', schema 'dbo'.
. O código que estou executando é o seguinte:
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 = '[email protected]',
@subject = 'Test',
@body = 'Test'
REVERT;
DROP USER kyle_temp
O logon do Foo mostra que ele é mapeado para o usuário do Foo no msdb. Quando olho para o usuário foo no msdb, vejo que ele tem "DatabaseMailUserRole" marcado e tem Execute no dbo sp_send_dbmail
.
o que estou perdendo?
fonte
msdb.dbo.sp_send_mail
nesse corpo local do SP. Faça com que o gatilho chame esse SP local. Código assine o SP.