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.
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.
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.
Ao clicarmos em <enter>, aparecerá no prompt a linha 1> onde digitaremos as instruções a serem executadas no servidor SQL Server.
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.
Agora digitamos exit e clicamos em <enter> para sairmos do sqlcmd (prompt de comando do SQL Server), como mostramos nas imagens a seguir.
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.
Pronto, conexão realizada e devidamente logado no servidor.
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.
16 Comentários
Ajudou muito! Vllw.
Show de bola, ainda não precisei, porém esta salvo nos favoritos. =D
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.
Muito bom!
Pingback: Usuários no SQL Server | Alex Souza
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'”
Valeu, me ajudou bastante!
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?
Ótima postagem e didática. Me ajudou muito. Parabéns.
Obrigado, deu certo :Þ o/
Muito bom o tutorial, deu super certo!!! Me ajudou muito!! Obrigado pelo conhecimento adquirido!!
Grande ajuda para os nãos Dba.
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.
Valeu pelas orientações e didática, funcionou de primeira.
Muito bom, objetivo e eficaz, parabéns.
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 ;-;