Estoy tratando de enviar correo electrónico a la base de datos pero estoy recibiendo EXECUTE permission denied on the object 'sp_send_dbmail' database 'msdb', schema 'dbo'.
. El código que estoy ejecutando es el siguiente:
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
El inicio de sesión de Foo muestra que está asignado al usuario de Foo en msdb. Cuando miro al usuario foo en msdb, veo que tiene "DatabaseMailUserRole" marcado y tiene Execute en dbo sp_send_dbmail
.
¿Qué me estoy perdiendo?
fuente
msdb.dbo.sp_send_mail
en este cuerpo SP local. Haga que el disparador llame a este SP local. Código de firmar el SP.