sábado, 14 de agosto de 2021

SQL Server error Could not obtain information about Windows NT group/user

Vários jobs estavam apresentando o erro abaixo porque a empresa fez uma mudança de domínio do AD e o usuário que havia sido usado para criar os jobs fazia parte do antigo domínio. É o mesmo problema que ocorre quando se exclui um usuário do AD e recria com o mesmo nome. O usuário existe mas não é o mesmo. Neste caso ele realmente ainda existe, mas o domínio está fora de uso ou de alcance, sem responder às requisições de permissões (ou similar). Não adiantou trocar o owner do job diretamente na interface, apesar de isso parecer mais que suficiente. Somente depois que peguei uma dica do mestre Pinal Dave é que a coisa começou a melhorar, embora não tenha sido suficiente para tudo. 

Outra ação que fiz foi, segundo uma fonte que agora não lembro, fazer um Detach e Attach usando o SA user database para refazer todos os logons (se é que isso serviu, mas eu fiz).

Message: The job failed.  Unable to determine if the owner (domain\user) of job <job name> has server access (reason: Could not obtain information about Windows NT group/user 'domain\user', error code 0x6fc. [SQLSTATE 42000] (Error 15404)).  NOTE: Failed to notify 'Alexandre Paiva' via email.

USE MSDB
GO
UPDATE sysssispackages
SET ownersid = SUSER_SID('sa')
WHERE NAME = 'Name Of Maint Plan'

No meu caso, como tudo estava quebrado, eu não usei o WHERE. Que luxo poder rodar um Update sem Where. Tome cuidado.


Fonte: https://blog.sqlauthority.com/2018/08/20/sql-server-fix-error-the-job-failed-unable-to-determine-if-the-owner-domainuser-of-job-job_name-has-server-access/

SQL Server Logon to server failed - ConnLogJobHistory

Dentre os vários possíveis erros para esta mensagem uma delas que acabei tendo que enfrentar esta semana foi que o @@ServerName estava apontando para o antigo nome do servidor que foi virtualizado. Após horas de investigação e muitas tentativas de outras soluções finalmente cheguei à causa raiz do problema, o bendito server name desatualizado.

Message [382] Logon to server 'servername' failed (ConnLogJobHistory)

O SQLServerAgent tentava se autenticar ou algo parecido no nome antigo. Como isto não era mais possível os Jobs simplesmente não executavam. Dava o start, mas nada, até cair por timeout

Após aplicar os comandos a seguir foi necessário apenas reiniciar os serviços, deconectar da instância e reconectar no Management Studio.

EXEC sp_dropserver '<old_name>'; GO EXEC sp_addserver '<new_name>', local; GO


The jobs are running. Shout to the Lord.


Fonte: https://docs.microsoft.com/pt-br/sql/database-engine/install-windows/rename-a-computer-that-hosts-a-stand-alone-instance-of-sql-server?view=sql-server-ver15