Não é possível conectar-se ao SQL Server usando a conta 'sa', o que estou perdendo?


20

Estou tentando fazer logon em uma instância do SQL Server 2005 Express usando o seguinte comando:

osql -S .\INSTANCE -U sa -P password

Eu recebo o erro: Falha no login para o usuário 'sa'.

Eu posso me conectar muito bem usando a opção -E. Devo acrescentar que está funcionando há meses. Acho que alguém mudou alguma coisa, mas não consigo descobrir o que é.

Isto é o que eu tentei:

  • Entre usando a autenticação do Windows e alterando a senha sa:

    sp_password NULL, newpassword, 'sa'

  • Ativando o logon 'sa':

    ALTERAR O LOGIN em ATIVAR; VAI ALTERAR O LOGIN com WITH PASSWORD = 'newpassword'; IR

  • Verificou o Registro do Windows para garantir que a autenticação mista esteja ativada. O valor estava correto: LoginMode = 2

O que mais devo verificar? Desde já, obrigado.

INFORMAÇÃO ADICIONAL:

Este é um servidor Windows 2003. Eles têm algumas diretivas de senha ativadas, lembro que eu precisava alterar a senha 'sa' padrão que meu aplicativo usa quando instala o SQL Server para outro mais complexo.

Estou conectando usando VNC, então não posso realmente usar SSMS

Meu aplicativo pode se conectar usando outro logon do SQL Server, mas não 'sa'

Por fim, se não encontrarmos uma solução, removerei esta instância e a instalarei novamente, mas realmente gostaria de descobrir qual é o problema. Apenas no caso de acontecer novamente e apenas por pura curiosidade.

Respostas:


23

Como o @SpaceManSpiff disse, não se esqueça de verificar se o modo Misto está ativado. Alguém mudou essa configuração para mim e eu tive o mesmo problema. Aqui está como resolvê-lo:

  1. Faça logon no MSSQL Server Management Studio com autenticação do Windows.
  2. No Gerenciador de Objetos do SQL Server Management Studio, clique com o botão direito do mouse no servidor e clique em Propriedades.
  3. Nas Propriedades do servidor, selecione uma página de "Segurança".
  4. Selecione a autenticação do servidor como "modo de autenticação do SQL Server e Windows" e clique em OK. Propriedades do banco de dados MSSQL Server Management
  5. Reinicie o SQL Services e tente fazer login com os detalhes 'sa'.

Fonte: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/


12

Ok, consegui descobrir o que estava acontecendo (meio que) e consegui uma solução alternativa.

Parece que uma semana atrás eles estavam brincando com a política de segurança do Windows. Eles estavam adicionando / removendo permissões, mas não podem me dar exatamente o que fizeram porque realmente não sabiam (ai!).

De qualquer forma, eu conectei usando autenticação do Windows (opção -E) e execute a seguinte consulta:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

A chave aqui é CHECK_POLICY = OFF . Isso fez o truque. Espero que isso torne o 'sa' imune a alterações futuras na configuração de seu domínio.

Obrigado por todas as suas sugestões.


6

Coisas a verificar

Senha na conta SA

Modo misto ativado

A conta do SA está desativada?

Crie outra conta SQL e tente (já que você pode entrar com -E, você poderá fazer isso)

Teste usando uma conexão ODBC, você pode criar esta conexão para ver se o SA funciona

Ah, e sempre pegue tudo no Windows, reinicie (sério, isso ajuda no meu servidor SQL de teste depois que eu fiz as coisas)


1

Eu tive esse problema alguns anos atrás, depois de instalar o Windows ServicePack (sem atualização do SQLServer, mas Windows), o SQLServer recusou conexões, até que o SQLServer ServicePack também foi instalado! Encontrei uma mensagem no log de eventos depois de algumas horas.

Eu acho que eles fizeram isso, porque sabiam que havia uma grande falha de segurança e queriam forçar todos os administradores a instalar o pacote. No entanto, como já faz algum tempo, não conheço as versões exatas e assim por diante. Eu recomendaria que você verifique seu log de eventos e instale todos / os service packs mais recentes.


Parece promissor, vou tentar na segunda-feira e relatar de volta. Obrigado pela sugestão.
JAG

Por fim, não tentei instalar o Service Pack mais recente. Veja minha própria 'resposta aceita'.
JAG

0

Supondo que você tenha o Management Studio ou o Management Studio Express instalado, você pode conectar o Management Studio à instância usando sa?

JR


11
O SSMS não está instalado e eu prefiro não instalá-lo, se possível. Além disso, a conexão de outro computador com o SSMS não é uma opção, pois é um servidor do cliente. Somente as ferramentas de linha de comando estão disponíveis.
JAG

Se você tiver o Management Studio em outro PC, mesmo que esteja na extremidade mais distante de uma VPN, ainda poderá conectar-se. O objetivo é verificar se há algo estranho na configuração do servidor ou se o problema está no comando osql.
31411 John Rennie

0

Você certificou-se de reiniciar o serviço SQL Server depois de fazer a alteração no registro?


Não foi necessário alterá-lo porque tinha o valor correto.
JAG

0

Alguém removeu o banco de dados que era o banco de dados padrão para "sa"?

Se esse for o problema, tente

EXEC sp_defaultdb 'sa', 'New default database'

Em teoria, existe apenas um banco de dados e ele existe. Eu não executei esse comando embora.
JAG

Normalmente é 'mestre'. Mas eu acho que não é o problema ...
splattne

Eu apenas tentei, mas não fez diferença. Obrigado mesmo assim.
JAG

0

Se você estiver instalando o SQL Express 2014, precisará executar algumas ações para resolver esse erro se tentar fazer login com a conta [sa].

  1. A conta "sa" será desativada. Portanto, você precisará alternar a conta de desativada para ativada na seção de status da conta.

  2. O servidor deve ter a autenticação do Windows e SQL Server ativada. Por padrão, apenas a autenticação do Windows está ativada.

  3. Redefina a senha. (veja o código abaixo; ServerFault tem um erro em que o código não aparece da mesma maneira ao usar uma lista ordenada em 8/6/2016)

  4. Reinicie o serviço Windows para SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;

0

Às vezes, o login é desativado devido a muitas senhas incorretas ou qualquer violação da política. Então, o que podemos fazer é fazer login com autenticação de janela, alterar a senha e ativar o login novamente.

Faça logon no banco de dados com autenticação do Windows

Executar consulta:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF 
GO
ALTER LOGIN [sa] ENABLE
GO

O uso de CHECK_POLICY é necessário, pois especifica que as diretivas de senha do Windows do computador em que o SQL Server está sendo executado devem ser aplicadas nesse logon. O padrão é LIGADO quando desligamos, ele altera a senha sem dificuldades. Mais tarde você pode LIGAR

NOTA: O que observei que quando CHECK_POLICY está nas soluções GUI SSME para alterar a senha não funciona sempre. Não sei o motivo, mas observei.


0

eu resolvi isso da seguinte maneira: logon com a autenticação do Windows, vá para as propriedades do servidor >> Segurança e altere a autenticação do servidor


11
Você poderia gastar mais com a formatação (e a conclusão) de sua resposta? Como está escrito, não ajuda muito.
asdmin 01/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.