管理されたサービスアカウントで実行されている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を調べましたが何も見つかりませんでした。
SQL Serverエージェントサービスアカウントには、インスタンスに対するsysadmin権限が必要です。