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

15

Estou tentando fazer login 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 do usuário 'sa'.

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

Isso é o que eu tentei:

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

    sp_password NULL, nova senha, 'sa'

  • Ativando o login 'sa':

    ALTER LOGIN é HABILITADO; VAI ALTER LOGIN sa WITH PASSWORD = 'newpassword'; GO

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

O que mais devo verificar? Agradecemos antecipadamente.

INFO ADICIONAL:

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

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

Meu aplicativo pode se conectar usando outro login do SQL Server, mas nenhum 'sa'

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

    
por JAG 03.07.2009 / 13:07

9 respostas

12

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

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

De qualquer forma, conectei-me usando a autenticação do Windows (-E switch) e executei 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 seja imune a mudanças futuras na configuração de seus domínios.

Obrigado por todas as suas sugestões.

    
por 06.07.2009 / 11:56
16

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

  1. Faça login no MSSQL Server Management Studio com autenticação do Windows.
  2. No Pesquisador 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 do Windows" e clique em OK.
  5. ReinicieoSQLServicesetenteefetuarlogincomdetalhesde'sa'.

Fonte: link

    
por 18.06.2012 / 20:11
6

Coisas a verificar

Senha na conta SA

Modo misto ativado

A conta SA está desativada?

Crie outra conta SQL e experimente-a (já que você pode entrar com -E você poderia fazer isso)

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

Ah e o sempre pegar tudo no windows, reiniciar (sério, isso ajuda o meu servidor de teste SQL depois que eu fiz coisas para ele)

    
por 03.07.2009 / 18:00
1

Eu tive esse problema há alguns anos depois de instalar um ServicePack do Windows (sem SQLServer Update, mas Windows), o SQLServer recusou conexões, até que o SQLServer ServicePack também foi instalado! Eu encontrei uma mensagem no eventlog depois de algumas horas.

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, desde há algum tempo, eu não tenho as versões exatas e assim por diante. Eu recomendo, você verifique seu log de eventos e instale todos os service packs mais recentes.

    
por 03.07.2009 / 17:59
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

    
por 03.07.2009 / 13:21
0

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

    
por 03.07.2009 / 14:09
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'
    
por 03.07.2009 / 14:32
0

Se você estiver instalando o SQL Express 2014, terá que fazer algumas coisas 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 as janelas e a autenticação do sql server ativadas. Por padrão, somente a autenticação do Windows está ativada.

  3. Redefina a senha. (veja o código abaixo; ServerFault tem um bug onde o código não aparece da mesma forma quando se usa uma lista ordenada em 08/06/2016)

  4. Reinicie o serviço do Windows para SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
    
por 08.06.2016 / 07:05
0

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

Faça o login no banco de dados com a 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 políticas de senha do Windows do computador no qual o SQL Server está sendo executado devem ser aplicadas neste login. O padrão é ON quando desligamos ele irá alterar a senha sem quaisquer dificuldades. Mais tarde você pode ON

NOTA: O que eu observei que, quando CHECK_POLICY está na interface gráfica, as soluções SSME para alteração de senha não funcionarão sempre. Eu não sei o motivo, mas tenho observado.

    
por 08.05.2018 / 06:59

Tags