Welche Berechtigungen benötigt das Dienstkonto, um Datenbankmail zu verwenden?

9

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 DatabaseMailUserRoleRolle in der msdbDatenbank zuzuweisen. Ich habe dies getan und erhalte immer noch die gleichen Fehler.

Ich warf einen Blick in die BOL, konnte aber nichts finden.

Mansfield
quelle
Laufen SQL Server und SQL Agent unter demselben Konto?
Kin Shah
@kin Nein, separate Konten (beide verwaltete Dienstkonten).
Mansfield
Können Sie versuchen, SQL Agent mit demselben Dienstkonto wie SQL Server auszuführen - nur um dies auszuschließen und zu überprüfen, ob dies funktioniert?
Kin Shah
@Kin Das hat die Berechtigung sysadmin, also wird es funktionieren. Ich habe meinem Hauptdienstkonto sysadmin vorerst die Erlaubnis gegeben und alles funktioniert - ich bin nur neugierig zu wissen, ob das zu viel ist.
Mansfield

Antworten:

4

Für das SQL Server Agent-Dienstkonto sind Sysadmin-Berechtigungen für die Instanz erforderlich.

Microsoft KB

Nabil Becker
quelle