Antes de mais nada

Considerando aqui que esse post se aplica a muita gente que começa a operar em um ambiente legado, é importante falar que existe um meio de verificar quais contas (ou grupos) do AD podem ter acesso ao SQL. Portanto, antes de alterar qualquer configuração do SQL:

  • Acesse o servidor;
  • Vá na pasta de instalação do SQL (deve estar na pasta C:\Program Files\Microsoft SQL Server)
  • Localize o arquivo ConfigurationFile.ini (caso tenha mais de um, sugerimos que veja todos)
  • Procure na linha SQLSYSADMINACCOUNTS quais as contas possuem permissão de System Admin no seu SQL.

Executando a rotina para recuperar o acesso

Apesar de ser possível conectar em single mode e já alterar a senha do SA, iremos demonstrar aqui como atribuir a permissão de sysadmin para outro usuário, permitindo depois administrar como se deseja.

  • Pare as aplicações que tentam acesso a esse banco de dados;
  • Conecte no servidor de banco de dados, nesse servidor:
    • Abra o SQL Configuration Manager (não funciona fazer isso pela console tradicional de serviços do Windows), vá em SQL Server Service e:
      • Obtenha o nome da instância (caso não seja a default), essa informação será necessária mais a frente;
      • Pare o SQL Server;
      • Faça uma cópia de segurança dos arquivos master.mdf e mastlog.ldf desse SQL Server
      • Peça propriedades do serviço SQL Server, na aba Startup Parameters adicione a linha -m e clique em OK;
      • Inicie o SQL Server;
    • Abra o CMD como administrador e:
      • Para conectar no SQL em single mode (sem senha), execute o comando: SQLCMD -Slocalhost
      • Depois de conectar, crie um novo usuário local com permissão de sysadmin com o seguinte comando:
CREATE LOGIN NovoSA WITH PASSWORD = ‘senha_desse_usuario‘;
ALTER SERVER ROLE sysadmin ADD MEMBER NovoSA
GO

Pare novamente o banco, retire a variável de inicialização que foi colocada e inicie o banco normalmente. Em seguida acesse o banco com a nova credencial.

Tendo sucesso neste procedimento, apague o backup dos arquivos master.mdf e mastlog.ldf

Opcional – Adicionar a permissão de sysadmin para um usuário de rede

Se preferir adicionar acesso à um usuário de rede, em vez de adicionar outro usuário local com permissão de sysadmin, altere os comandos da tabela acima, por estes comandos:

EXEC sp_addsrvrolemember NSEU_DOMINIO\Login_do_usuario, ‘sysadmin’;
GO

Fontes/Referências

https://social.msdn.microsoft.com/Forums/en-US/1b51eaf6-1580-4ad4-999b-fd7c2b45a29e/forgot-sa-password?forum=sqlkjmanageability
https://www.hex64.net/how-to-recover-sa-password-on-microsoft-sql-server/
https://www.sqlserverlogexplorer.com/reset-sa-password-sql-server-step-by-step/
https://www.sqlshack.com/recover-lost-sa-password/

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria
Categorias: Soluções Microsoft