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:
- Abra o SQL Configuration Manager (não funciona fazer isso pela console tradicional de serviços do Windows), vá em SQL Server Service e:
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.