kolmapäev, 13. juuni 2018

Database Maili viga The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'

Andmebaasis on protseduur, mis kutsub välja msdb.dbo.sp_send_dbmail protseduuri e-posti saatmiseks.

Kõik on nagu õieti, tehtud on kontod ja profiild ning andmebaasi loginid on lisatud msdb andmebaasi DataBaseMailUser rolli

aga e-post saatmisel annab vea The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'

Lahendus on see, et andmebaas tuleb seada  TRUSTWORTHY režiimi, ehk

ALTER DATABASE andmebaasi_nimi SET TRUSTWORTHY ON

Saadetud e-postide olekut saab kontrollida päringuga
select * from msdb.dbo.sysmail_allitems

Kui on kasuatusel protseduurides EXECUTE AS konstruktsioon siis võib vaja minna muuta ka andmebaasi omanikku, näiteks

EXEC sp_changedbowner 'sa'

ALTER AUTHORIZATION ON DATABASE::[andmebaas] TO [sa]