今朝、SQLログが次のメッセージでいっぱいになっていることに気付きました。
アクティブにprocの「[dboは] [sp_syspolicy_events_reader]。」は次のキュー「msdb.dbo.syspolicy_event_queue」出力で実行されている:
「校長『## MS_PolicyEventProcessingLogin ##』、このタイプの存在しないため、データベースプリンシパルとして実行できませんプリンシパルを偽装することはできません、またはあなたには許可がありません。
以下を実行するEXEC sp_change_users_login 'report'
と、ログインが実際に孤立していることがわかりました。
このMSDNの投稿で推奨されているように、以下を実行することで修正できました。
EXEC sp_change_users_login
'Auto_Fix', '##MS_PolicyEventProcessingLogin##',
NULL, 'fakepassword'
しかし、問題は残っています:このプリンシパルがそもそも孤児になった原因は何でしょうか?グーグルで調べて調べたところ、他の人がこの問題を抱えていることがわかりましたが、原因の説明はまだわかりません。エラーが発生し始めた瞬間、私が気づいていることは何も起こりませんでした。
昨年の夏にサーバー全体をSANストレージモデルに移動しました。その移動中にすべて(msdbを含む)を復元しましたが、それは数か月前でした。数週間前よりも早くログに表示されないため、症状が現れたのは最近のことでした。