web-dev-qa-db-ja.com

サービスアカウントはデータベースメールを使用するためにどのような権限が必要ですか?

管理されたサービスアカウントで実行されているSQL Server 2012インスタンスがあります。 1つのアカウントでデータベースメールを構成し、テストメールを送信しようとしていますが、サーバーのイベントログにエラーが表示されます。

データベースエンジンインスタンス= MYINSTANCE;メールPID = 2132;エラーメッセージ:データベースの更新に失敗しました。理由:EXECUTE権限がオブジェクト 'sysmail_logmailevent_sp'、データベース 'msdb'、スキーマ 'dbo'で拒否されました。

データベースエンジンインスタンス= MYINSTANCE;メールPID = 2212;例外の種類:Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseExceptionメッセージ:データベースの読み取りに失敗しました。理由:EXECUTE権限がオブジェクト 'sp_readrequest'、データベース 'msdb'、スキーマ 'dbo'で拒否されました。データ:System.Collections.ListDictionaryInternal TargetSite:Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand(System.Data.SqlClient.SqlCommand)HelpLink:NULL Source:DatabaseMailEngine

SQL Serverプロセスを実行しているアカウントをsysadminにすると、このエラーはなくなり、メールは正常に送信されます。ただし、私が行ったすべての調査は、このアカウントにDatabaseMailUserRoleデータベースのmsdbロールを与えるだけで十分であることを示唆しています。これを実行しても、同じエラーが発生します。

BOLを調べましたが何も見つかりませんでした。

9
Mansfield

SQL Serverエージェントサービスアカウントには、インスタンスに対するsysadmin権限が必要です。

Microsoft KB

4
Nabil Becker