Alterando a senha do usuário “sa” (SQL Server) por linha de comando

Gostaria de começar este tutorial contando uma pequena história.

Estive esta semana em um cliente que trabalha com um software da empresa que trabalho. Este software usa banco de dados SQL Server (da Microsoft). O cliente nos contatou pois precisava acessar o SQL Management (programa de gerenciamento de bancos) para fazer backup do banco de dados atual e restaurar um banco de dados anterior. No entanto, o rapaz de TI da empresa deles, do qual tinha instalado o SQL Server Express 2012 (versão gratuita do Microsoft SQL Server), colocou uma senha robusta no usuário sa (usuário master) e também restringiu o acesso pelo modo de autenticação via Windows. Então tivemos que alterar a senha do sa via linha de comando para conseguir acessar e gerenciar novamente os bancos de dados.

Como não foi o primeiro caso como esse que peguei e acredito também que não será o último, decidi passar os passos para alterar a senha por linha de comando.

Vamos ao passo a passo, como sempre bem detalhado para que possa ajudar aos que necessitam.

O primeiro passo a fazer é acessar o Prompt de Comando em modo administrativo.

Pelo Windows 7, no menu Iniciar > Todos os Programas > Acessórios, clique com o botão direito do mouse em cima de Prompt de Comando e depois clique em Executar como administrador como mostra a tela a seguir.

sqlcmd1

No caso do Windows 8, clique com o botão direito do mouse no canto inferior esquerdo da tela e depois clique em Prompt de Comando (admin) como é mostrado também na imagem a seguir.

sqlcmd

Já na tela do Prompt de Comando, digite o comando sqlcmd -S WIN7-BASETESTE\SQLEXPRESS, no caso aqui o comando sqlcmd é para acessar o SQL via linha de comando, a instrução -S se refere para acessar o SQL Server e WIN7-BASETESTE\SQLEXPRESS é o nome do servidor SQL que está sendo utilizado aqui.

sqlcmd2

Ao clicarmos em <enter>, aparecerá no prompt a linha 1> onde digitaremos as instruções a serem executadas no servidor SQL Server.sqlcmd3

Para alteramos a senha do usuário sa, iremos digitar a seguinte instrução: sp_password @old = null, @new = ‘123456’, @loginame = ‘sa’, onde sp_password é o comando para identificar a tabela das senhas, @old = null irá anular a senha antiga do sa, @new = ‘123456’ setará a nova senha como 123456 e @loginame = ‘sa’  identifica que as alterações da senha serão para o usuário sa.

Ao clicar em <enter> aparecerá a segunda linha (2>), onde digitaremos go para executar as instruções solicitadas na linha 1>. Ao clicar em <enter> reparaem que retornará para o promprt de comando definido como 1>. É sinal que a instrução foi aceita pelo SQL Server.

sqlcmd4

Agora digitamos exit e clicamos em <enter> para sairmos do sqlcmd (prompt de comando do SQL Server), como mostramos nas imagens a seguir.sqlcmd5

sqlcmd6

Caso não saibam o nome do instância do Servidor SQL para executarmos os comandos acima, basta acessar o SQL Management Studio que mostrará o nome e instância do servidor que está sendo usado.

Agora colocamos o usuário sa, a senha 123456 e depois clicamos em Conectar para acessarmos o servidor desejado.

sqlcmd7

Pronto, conexão realizada e devidamente logado no servidor.

sqlcmd8

No sqlcmd podemos trabalhar com comandos para gerenciar as bases de dados. Caso queira saber as opções disponíveis para o comando sqlcmd, só precisa digitar no Prompt de Comando (modo administrativo) o comando sqlcmd/? . Como não é o propósito deste tutorial, não irei entrar em detalhes.

Espero ter ajudado.

Abraços e até a próxima.

Luciano Gusso

Mais artigos deste autor »

Formado em Analise e Desenvolvimento de Sistemas, com MBA em Gestão de Projetos.
Trabalhando há mais de 20 anos na área de TI, prestando suporte técnico e consultoria à empresas e usuários finais.


16 Comentários

Alexandre
3

Bom dia a todos,
Obrigado pelas informações, mais gostaria de complementar seu artigo, o procedimento exposto acima irá funcionar se:
1- usuário de rede não estiver cadastrado no no Sql Server, porém for administrador da máquina onde a instância está instalada.
2- usuário de rede esteja com permissão de Login e estiver atribuído a ele a permissão de sysadmin, pois caso contrário a seguinte mensagem será apresentada:
“Msg 18470, Level 14, State 1, Server QUIRIUS-NOTE2, Line 1
Login failed for user ‘\’. Reason: The account is disabled.”
Forte abraço.

joggernault
5

Sugestão para execução in-line:
“%ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE” -E -S localhost\SQLNG -Q “sp_password @old = null, @new = ‘ng@123456’, @loginame = ‘sa'”

Ivan
7

Eu fiz conforme o tutorial, o prompt não reclama de nada, porem quando eu vou logar no “sa” para testar, ele me da o erro: Login failed for user ‘sa’, (Microsoft SQL Server, Error: 18456)
Alguém pode me ajudar?

Rodrigo Amaral
10

Muito bom o tutorial, deu super certo!!! Me ajudou muito!! Obrigado pelo conhecimento adquirido!!

Joao Jr
12

Boa tarde!!
Eu fiz o procedimento conforme o tutorial e esta dando essa msg.
Mensagem 102, Nível 15, Estado 1, Servidor nomeservidor\SQLEXPRESS, Linha 1
Sintaxe incorreta próxima a ”’
Obrigado.

Guilherme Tauil
15

Boa noite eu estou enfrentando o seguinte problema eu consigo acessar o banco de dados sqlserver atraves da autenticação windows, porem não consigo mudar a senha de nenhum usuario elas permanecem a mesma mesmo eu alterando a senha e não sei qual é aquela atual. ajuda ae ;-;

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!