Ich versuche, Datenbank-Mail zu senden, aber ich bekomme EXECUTE permission denied on the object 'sp_send_dbmail' database 'msdb', schema 'dbo'.
. Der Code, den ich verwende, lautet wie folgt:
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
Das Foo-Login zeigt an, dass es dem Foo-Benutzer in msdb zugeordnet ist. Wenn ich mir den foo-Benutzer in msdb ansehe, sehe ich, dass "DatabaseMailUserRole" aktiviert ist und Execute on dbo hat sp_send_dbmail
.
Was vermisse ich?