Olá pessoal,
Boa tarde!
Neste post vou demonstrar como recuperar a senha do usuário Administrador do SQL Server (sa), caso ela tenha sido perdida ou alterada por um usuário mal intencionado ou você simplesmente não lembra mais da senha. Muitos DBA’s menos experientes podem ficar desesperados com essa situação e recorrer à reinstalação do produto para recuperar essa senha e as soluções são realmente bem simples.
Utilizando o SQLCMD
A primeira forma de recuperar a senha do usuário SA é utilizando o SQLCMD (Para saber mais sobre o SQLCMD, acesse este post).
Por estar sempre presente e já vir com o produto, eu considero a solução mais prática, embora NÃO funcione caso não tenha sido criado (ou tenha sido removido) o login com o grupo do domínio, que permite conexões utilizando Autenticação Windows (AD).
Para recuperar a senha, abra o Prompt de comando do Windows (cmd) no servidor que terá a senha alterada e digite os comandos abaixo para se conectar no banco:
1 |
sqlcmd -S <nome_do_servidor>\<instancia> -E |
Após a conexão, basta executar os comandos abaixo para alterar a senha:
1 2 |
sp_password NULL, 'dirceu123', 'sa' -- Essa SP será removida em futuras versões do SQL Server GO |
Como a sp_password será desativada em futuras versões, podemos utilizar também o comando ALTER LOGIN para realizar a alteração da senha.
1 2 |
ALTER LOGIN sa WITH PASSWORD = 'dirceu123' GO |
Utilizando o SQL Management Studio
Uma outra alternativa para realizar a recuperação da senha, é logar localmente no seu banco de dados pelo Management Studio utilizando autenticação Windows AD e alterar manualmente a senha.
Agora basta entrar nas opções de segurança e alterar a senha do usuário SA (ou qualquer outro a sua escolha)
Não consigo conectar usando Autenticação Windows
Ocorre quando você não se lembra da senha do usuário SA, a role padrão da instância foi apagada e não é possível se conectar na instância de forma alguma.
O primeiro passo é parar a instância do SQL Server utilizando o Configuration Manager.
Para abrir o Configuration Manager, basta executar o comando SQLServerManager10.msc ou em Iniciar > Todos os Programas > Microsoft SQL Server -sua_versao- > Configuration Tools > SQL Server Configuration Manager
Agora vamos iniciar a instância em modo single user (-m) ou com as configurações mínimas (-f). Para isso, digite o comando abaixo no Prompt de comando:
1 2 |
cd "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn" SQLServr.Exe –m |
Uma maneira alternativa de realizar essa configuração é manipulando os serviços do Windows:
1 2 |
net stop mssqlserver net start mssqlserver /m |
Com isso, você agora pode logar normalmente na instância utilizando o comando sqlcmd e alterar a sua senha, uma vez que o login será feito com o usuário padrão do servidor, mesmo que ele tenha sido apagado.
Se você desabilitou o acesso da role de Administradores (geralmente é a role com o mesmo nome da instância), pode ser que você não consiga se logar na instância mesmo utilizando essa procedimento, mas você pode tentar com a solução abaixo.
Utilizando o PsExec
Uma utilitário fantástico da sysinternals, o PsExec permite executar aplicativos utilizando o usuário NT AUTHORITY\SYSTEM, que possui acesso nativo ao SQL Server.
Para realizar a recuperação de senha, basta baixar o PsExec neste link, extrair para uma pasta local no seu servidor e executar os comandos abaixo no Prompt de comando (como Administrador), onde o parâmetro -s serve para utilizar a conta de sistema, enquanto o -i habilita o modo interativo:
1 2 |
cd C:\PSTools PsExec.exe -s -i "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" |
Agora é só criar, alterar ou habilitar os usuários que você precisa para administrar sua instância.
Utilizando softwares terceiros
Uma outra forma de recuperar rapidamente a senha do Administrador é utilizando softwares terceiros para realizar essa tarefa. Geralmente essa forma de desbloqueio é preferida por pessoas que administram bancos SQL Server e não tem muito conhecimento técnico (sim, isso acontece) e acabam optando por pagar por essas ferramentas.
Quando você já tentou TODAS as outras alternativas e não conseguiu recuperar (caso todos os usuários estejam bloqueados), você pode utilizar uma dessas ferramentas como opção, pois ela não exige conexão com o banco de dados, uma vez que a ferramenta atua diretamente no arquivo MDF do database master e altera os bits forçando a alteração da senha, quase um procedimento cracker.
Algumas das ferramentas mais conhecidas para isso são:
– SQL Server Password Geeker
– Elcomsoft Advanced SQL Password Recovery
– MS SQL Server Password Unlocker
É isso aí, pessoal!
Até a próxima
como formas de resetar redefinir mudar recuperar a senha de administrador sa SQL Server, how to recover retrieve change lost password perdi a senha PsTools PsExec
como formas de resetar redefinir mudar recuperar a senha de administrador sa SQL Server, how to recover retrieve change lost password perdi a senha PsTools PsExec
Parabéns, essa postagem salvou 🙂
fazer pelo próprio SSMS é sensacional!
muito obrigado, ajudou bastante!
consegui realizar o procedimento e logar com o Nativo mas ele loga como public e não como sysadmin no SQL SERVER 2016
Parabéns! Não sei quanto tempo tem essa postagem, mas ainda está servindo de modo eficiente.
Obrigado, Virgílio. Tem certas coisas que nunca ficam velhas… Rs
Espero ter ajudado.
Cara você é um gênio, o método do PsExec é sensacional
Fala Maycon!
Tô longe de ser um gênio, mas fico feliz que tenha gostado e provavelmente, te ajudado em algum momento.. Rs
Abraço
Sensacional! Ajudou bastante. Vlw
Muito Bom
Obrigado pelo feedback, Mateus! Qualquer dúvida, é só falar.
salvou minha vida vlw
Olá
Esse post foi de excelente ajuda.
O PsExec foi o que matou a pau! Ja tinha tentado de tudo, tava quase desistindo. O PsExec foi o unico que funcionou! Muito Obrigado! Parabens!
ola boa noite quero dizer que foi de grande ajuda essa postagem muito da hora mesmo