Heute Morgen habe ich festgestellt, dass mein SQL-Protokoll die folgende Meldung enthält:
Der aktivierte Prozess '[dbo]. [Sp_syspolicy_events_reader]', der in der Warteschlange 'msdb.dbo.syspolicy_event_queue' ausgeführt wird, gibt Folgendes aus:
'Kann nicht als Datenbankprinzipal ausgeführt werden, da der Principal "## MS_PolicyEventProcessingLogin ##" nicht vorhanden ist Der Auftraggeber kann nicht verkörpert werden, oder Sie haben keine Erlaubnis. '
Das Ausführen der folgenden EXEC sp_change_users_login 'report'
Schritte ergab, dass das Login tatsächlich verwaist war.
Ich konnte das Problem beheben, indem ich Folgendes ausführte, wie in diesem MSDN-Beitrag empfohlen .
EXEC sp_change_users_login
'Auto_Fix', '##MS_PolicyEventProcessingLogin##',
NULL, 'fakepassword'
Aber die Frage bleibt: Was in aller Welt hätte dazu geführt, dass dieses Prinzip überhaupt verwaist wäre? Googeln und Nachforschungen zeigen, dass andere dieses Problem hatten, aber ich habe noch keine Beschreibung der Ursache gefunden. In dem Moment, in dem der Fehler auftrat, ist nichts Besonderes aufgetreten, von dem ich weiß.
Wir haben den gesamten Server im letzten Sommer auf ein SAN-Speichermodell umgestellt. Während dieses Umzugs haben wir alles (einschließlich msdb) wiederhergestellt, aber das war vor Monaten. Es war nur etwas Neues, das das Symptom manifestierte, da es nicht früher als vor ein paar Wochen im Protokoll erscheint.