Cosa causerebbe un ## MS_PolicyEventProcessingLogin ## orfano?


9

Questa mattina ho notato che il mio registro SQL si stava riempiendo del seguente messaggio:

Il proc attivato [[dbo]. [Sp_syspolicy_events_reader] 'in esecuzione sulla coda' msdb.dbo.syspolicy_event_queue 'ha prodotto quanto segue:
' Impossibile eseguire come principale del database perché il principale "## MS_PolicyEventProcessingLogin ##" non esiste, questo tipo di principal non può essere impersonato o non si dispone dell'autorizzazione. "

L'esecuzione di quanto segue ha EXEC sp_change_users_login 'report'rivelato che l'accesso era effettivamente rimasto orfano.

Sono stato in grado di risolverlo eseguendo quanto segue come raccomandato in questo post MSDN .

EXEC sp_change_users_login 
    'Auto_Fix', '##MS_PolicyEventProcessingLogin##', 
    NULL, 'fakepassword'

Ma la domanda rimane: che cosa avrebbe causato questo orfano in primo luogo nel mondo? Google e le ricerche rivelano che altri hanno avuto questo problema, ma devo ancora trovare una descrizione della causa. Nulla di rilevante di cui sono a conoscenza si è verificato nel momento in cui ha iniziato a comparire l'errore.

L'estate scorsa abbiamo spostato l'intero server in un modello di archiviazione SAN, durante tutto lo spostamento abbiamo ripristinato tutto (incluso msdb), ma è stato mesi fa. È stato solo qualcosa di recente che ha manifestato il sintomo in quanto non compare nel registro prima di un paio di settimane fa.

Risposte:


3

Abbiamo aggiornato due server (da SQL 2000) a SQL 2008R2 utilizzando l'aggiornamento sul posto. Abbiamo iniziato a ricevere questi messaggi nei log SQL dopo l'aggiornamento. Non abbiamo modificato questo o altri accessi o utenti durante il processo di aggiornamento.

La mia ipotesi è che il processo di aggiornamento ha lasciato due account ( ##MS_PolicyEventProcessingLogin##e ##MS_PolicyTsqlExecutionLogin##) orfani.

EXEC sp_change_users_login 'Auto_Fix', '<User Name>' risolto questo problema.


2

Cause tipiche: qualcuno elimina l'accesso (pensando di ripulire gli accessi non validi) o ripristina uno dei database di sistema.

Tuttavia, è difficile indovinare di cosa si trattasse. Nei database degli utenti, è possibile consultare i registri delle transazioni per decodificarlo, ma non è possibile eseguire i backup dei registri per il master, quindi si è sfortunati.


0

Penso che hai ripristinato msdb, ma avevi un nuovo database principale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.