O que causaria um ## MS_PolicyEventProcessingLogin ## órfão?

9

Hoje de manhã, notei que meu Log SQL estava sendo preenchido com a seguinte mensagem:

O processo ativado '[dbo]. [Sp_syspolicy_events_reader]' executando na fila 'msdb.dbo.syspolicy_event_queue' gera o seguinte:
'Não é possível executar como o principal do banco de dados porque o principal "## MS_PolicyEventProcessingLogin ##" não existe, esse tipo de o diretor não pode ser representado ou você não tem permissão.

A execução do seguinte EXEC sp_change_users_login 'report'revelou que o logon ficou órfão.

Consegui corrigi-lo executando o seguinte, conforme recomendado nesta postagem do MSDN .

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

Mas permanece a pergunta: o que no mundo teria feito esse diretor ficar órfão em primeiro lugar? Pesquisando e pesquisando revelam que outros tiveram esse problema, mas ainda não encontrei uma descrição da causa. Nada de nota de que estou ciente ocorreu no momento em que o erro começou a aparecer.

Movemos o servidor inteiro para um modelo de armazenamento SAN no último verão, restauramos tudo (incluindo o msdb) durante essa mudança, mas isso foi há meses. Foi apenas algo recente que fez com que o sintoma se manifestasse, pois não aparece no log mais cedo do que algumas semanas atrás.

RThomas
fonte

Respostas:

3

Atualizamos dois servidores (do SQL 2000) para o SQL 2008R2 usando a atualização no local. Começamos a receber essas mensagens nos logs SQL após a atualização. Não alteramos este ou quaisquer outros logons ou usuários durante o processo de atualização.

Meu palpite é que o processo de atualização deixou duas contas ( ##MS_PolicyEventProcessingLogin##e ##MS_PolicyTsqlExecutionLogin##) órfãs.

EXEC sp_change_users_login 'Auto_Fix', '<User Name>' corrigiu esse problema.

B Singh
fonte
2

Causas típicas: alguém interrompe o logon (pensando que está limpando logins incorretos) ou restaura um dos bancos de dados do sistema.

É difícil adivinhar o que foi isso depois do fato. Nos bancos de dados do usuário, você pode percorrer os logs de transações para fazer a engenharia reversa, mas não pode fazer backups de log para mestre, por isso está sem sorte.

Brent Ozar
fonte
0

Eu acho que você restaurou o msdb, mas você tinha um novo banco de dados mestre.

Razvan Socol
fonte