Was würde ein verwaistes ## MS_PolicyEventProcessingLogin ## verursachen?


9

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.

Antworten:


3

Wir haben zwei Server (von SQL 2000) mithilfe eines direkten Upgrades auf SQL 2008R2 aktualisiert. Wir haben begonnen, diese Nachrichten nach dem Upgrade in SQL-Protokollen abzurufen. Wir haben diese oder andere Anmeldungen oder Benutzer während des Aktualisierungsprozesses nicht geändert.

Ich vermute, der Upgrade-Prozess hat zwei Konten ( ##MS_PolicyEventProcessingLogin##und ##MS_PolicyTsqlExecutionLogin##) verwaist.

EXEC sp_change_users_login 'Auto_Fix', '<User Name>' Dieses Problem wurde behoben.


2

Typische Ursachen: Jemand löscht die Anmeldung (denkt, er bereinigt schlechte Anmeldungen) oder stellt eine der Systemdatenbanken wieder her.

Es ist jedoch schwer zu erraten, was dies nachträglich war. In Benutzerdatenbanken können Sie die Transaktionsprotokolle durchgehen, um sie zurückzuentwickeln. Sie können jedoch keine Protokollsicherungen für den Master durchführen, sodass Sie kein Glück haben.


0

Ich denke, dass Sie msdb wiederhergestellt haben, aber Sie hatten eine neue Master-Datenbank.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.