J'essaye d'envoyer le courrier de base de données mais je reçois EXECUTE permission denied on the object 'sp_send_dbmail' database 'msdb', schema 'dbo'.
. Je code que je cours est le suivant:
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
La connexion Foo montre qu'il est mappé à l'utilisateur Foo dans msdb. Quand je regarde l'utilisateur foo dans msdb, je vois qu'il a "DatabaseMailUserRole" vérifié et a Exécuter sur dbo sp_send_dbmail
.
Qu'est-ce que je rate?
la source
msdb.dbo.sp_send_mail
ce corps SP local. Demandez au déclencheur d'appeler ce SP local. Code signe le SP.