Ich habe eine SQL Server 2012-Instanz, die unter einem verwalteten Dienstkonto ausgeführt wird. Ich habe Datenbank-E-Mails mit einem Konto konfiguriert und versuche, eine Test-E-Mail zu senden. In den Ereignisprotokollen des Servers werden jedoch einige Fehler angezeigt:
Database Engine Instance = MYINSTANCE; Mail PID = 2132; Fehlermeldung: Die Aktualisierung der Datenbank ist fehlgeschlagen. Grund: Die EXECUTE-Berechtigung wurde für das Objekt 'sysmail_logmailevent_sp', Datenbank 'msdb', Schema 'dbo' verweigert.
Database Engine Instance = MYINSTANCE; Mail PID = 2212; Ausnahmetyp: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException-Meldung: Das Lesen der Datenbank ist fehlgeschlagen. Grund: Die EXECUTE-Berechtigung wurde für das Objekt 'sp_readrequest', Datenbank 'msdb', Schema 'dbo' verweigert. Daten: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand (System.Data.SqlClient.SqlCommand) HelpLink: NULL Quelle: DatabaseMailEngine
Wenn ich das Konto, auf dem der SQL Server-Prozess ausgeführt wird, zu einem Systemadministrator mache, wird dieser Fehler behoben und E-Mails werden erfolgreich gesendet. Alle Untersuchungen, die ich durchgeführt habe, legen jedoch nahe, dass es ausreichend sein sollte , diesem Konto die DatabaseMailUserRole
Rolle in der msdb
Datenbank zuzuweisen. Ich habe dies getan und erhalte immer noch die gleichen Fehler.
Ich warf einen Blick in die BOL, konnte aber nichts finden.
quelle
Antworten:
Für das SQL Server Agent-Dienstkonto sind Sysadmin-Berechtigungen für die Instanz erforderlich.
Microsoft KB
quelle