De vez em quando (por exemplo, ~meses), um trabalho por hora do SQL Server Agent começará a relatar um erro 15404 e continuará a fazê-lo até que intervenha.
[298] Erro do SQLServer: 15404, não foi possível obter informações sobre o grupo/usuário do Windows NT 'DOMAIN_NAME\SomeDomainAccount', código de erro 0x6e. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
Às vezes, a primeira falha ocorre imediatamente após uma reinicialização manual dos serviços SQL Server Engine e SQL Server Agent. O problema pode ser resolvido reiniciando a máquina.
O proprietário do trabalho é o nome listado na mensagem de erro e é um administrador do SQL Server.
A conta SQL Server Engine Service parece ser uma conta de serviço (acredito que seja a conta de instalação padrão (um ponto melhor que o NetworkService genérico para evitar interferência entre as instâncias do mecanismo/agente):
NT Service\MSSQL$INSTNAME
Seria uma coisa se o trabalho sempre falhasse, mas como o trabalho é bem-sucedido após uma reinicialização, isso me faz pensar que uma conta de serviço como deveria estar funcionando e que há algum problema de tempo A/D ou possivelmente um bug. Quando a TI é questionada sobre a configuração A/D, a resposta geralmente é "nada mudou".
- Reiniciar o mecanismo e os serviços do agente pode fazer com que o trabalho comece a falhar.
- Uma reinicialização da máquina elimina o problema.
- Uma reinicialização subsequente imediata do mecanismo e do agente não causa mais falha na tarefa.
Não é uma solução, mas você pode contornar o problema tornando o proprietário do trabalho uma conta SQL.
Sempre que um trabalho é iniciado, o SQL Server verifica a identidade do proprietário do trabalho e verifica se ele tem permissão para executar o trabalho. Se o proprietário for uma conta do Windows, o mecanismo precisará consultar o Active Directory. Se por algum motivo isso falhar, o trabalho não será executado. Pode ser porque o servidor AD está ocupado, fora do ar ou desligado da rede, ou porque a conta de serviço do SQL Server não tem direitos.
Como funciona imediatamente após a reinicialização, isso me faz pensar que pode ter algo a ver com as credenciais em cache. O Windows salvará as credenciais que procura para uso posterior. Esse cache é limpo na reinicialização. Talvez algo esteja corrompendo o cache.
Tive um problema com uma instância movida do domínio A para o domínio B. Verifiquei as permissões em todos os lugares e concedi controle total em todos os lugares. Conta de serviço alterada, propriedade do trabalho, novo trabalho criado.... Nada funcionou. Encontrado o mesmo nome do usuário do serviço B\sqlservice e A\sqlservice existente como login no SQL Server Depois de excluir o login A\sqlservice, tudo começou a funcionar bem. Isso significa que alguns ponteiros do Windows estavam errados