Saya mencoba mengirim email basis data tetapi saya dapat EXECUTE permission denied on the object 'sp_send_dbmail' database 'msdb', schema 'dbo'.
. Kode yang saya jalankan adalah sebagai berikut:
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
Login Foo menunjukkan bahwa ia dipetakan ke Pengguna Foo di msdb. Ketika saya melihat pengguna foo di msdb saya melihat bahwa ia memiliki "DatabaseMailUserRole" Diperiksa dan memiliki Jalankan di dbo sp_send_dbmail
.
Apa yang saya lewatkan?
sumber
msdb.dbo.sp_send_mail
dalam badan SP lokal ini. Minta pemicunya memanggil SP lokal ini. Kode menandatangani SP.