Não foi possível fazer login no SQL Server + Autenticação no SQL Server + Erro: 18456


121

Eu criei uma conta de login no meu servidor localhost \ sql2008 (por exemplo, User123)

Mapeado para o banco de dados (padrão)

O modo de autenticação no SQL Server está definido como (Windows e SQL)

Mas o logon no SQL Server falha com a seguinte mensagem (para User123)

Nota: Verifiquei várias vezes que o Nome de usuário / Senha foram digitados corretamente

Detalhes do erro:

Falha no logon para o usuário 'User123' (Net.SqlClient Data Provider)

Nome do servidor: localhost \ sql2008 Número do erro: 18456 Gravidade: 14 Estado: 1 Número da linha: 65536

qualquer ajuda sobre isso, por favor.


1
Teste o acesso de autenticação sql e windows através do SqlServer Management Console para o usuário e veja se você pode acessar com a conta acima. Qual provedor de dados e cadeia de conexão você está usando?
quer

1
Estou tentando entrar no SSMS e lança acima do erro.
Sreedhar

1
Você pode fazer login como conta de administrador?
quer

Entre como administrador e verifique seu log de eventos. O motivo do erro deve estar listado lá. Procure na pasta de gerenciamento
Joe Pitz

Alternativo que funcionou para mim foi stackoverflow.com/questions/28090747/...
Mark Schultheiss

Respostas:


49

Por padrão, a mensagem de erro com falha no login é apenas uma conexão do usuário cliente que foi recusada pelo servidor devido à incompatibilidade de credenciais de login. A primeira tarefa que você pode verificar é verificar se esse usuário possui privilégios relevantes nessa instância do SQL Server e no banco de dados relevante, isso é bom. Obviamente, se os privilégios necessários não tiverem sido definidos, será necessário corrigir esse problema concedendo privilégios relevantes para o login do usuário.

Embora esse usuário tenha concessões relevantes no banco de dados e no servidor, se o servidor encontrar algum problema de credencial para esse logon, isso impedirá a concessão da autenticação ao SQL Server, o cliente receberá a seguinte mensagem de erro:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

Ok, agora o que, olhando para a mensagem de erro, você sente que isso não é descritivo para entender o nível e o estado. Por padrão, o erro do sistema operacional mostrará 'State' como 1, independentemente da natureza dos problemas na autenticação do logon. Portanto, para investigar mais, você precisa consultar o log de erros da instância relevante do SQL Server também para obter mais informações sobre Gravidade e estado desse erro. Você pode procurar uma entrada correspondente no log como:

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Conforme definido acima, as colunas Gravidade e Estado do erro são essenciais para encontrar a reflexão precisa da origem do problema. No erro acima, o número 8 para o estado indica falha na autenticação devido à incompatibilidade de senha. Manuais online referem-se: Por padrão, as mensagens definidas pelo usuário com gravidade inferior a 19 não são enviadas ao log do aplicativo Microsoft Windows quando ocorrem. As mensagens definidas pelo usuário com gravidade inferior a 19, portanto, não acionam alertas do SQL Server Agent.

Sung Lee, gerente de programas nos protocolos do SQL Server (equipe Dev.t) descreveu mais informações sobre a descrição do estado do erro: Os estados de erro comuns e suas descrições são fornecidos na tabela a seguir:

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5           Invalid userid
6                 Attempt to use a Windows login name with SQL Authentication
7                 Login disabled and password mismatch
8                 Password mismatch
9                 Invalid password
11 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Você pode ver que não há nível de gravidade ou estado definido no log de erros da instância do SQL Server. Portanto, a próxima opção de solução de problemas é examinar o log de segurança do Event Viewer [editar porque falta a captura de tela, mas você obtém o

idéia, procure no registro de eventos por eventos interessantes].


1
Graças vai olhar e ver como ele vai
Sreedhar

1
link morto, por favor considere a revisão
Chris Hayes

10
A resposta superior abaixo desta deve ser escolhida, não esta.
void.pointer

4
Leia o post abaixo.
Levi Fuller

6
@ void.pointer o OP já estabeleceu que "O Modo de Autenticação no SQL Server está definido como ambos (Windows e SQL)". Portanto, o post abaixo não tem relevância para esta questão.
Manachi 27/10

336

Você precisa habilitar a autenticação do SQL Server:

  1. No Pesquisador de Objetos, clique com o botão direito do mouse no servidor e clique em "Propriedades"

Caixa de diálogo Propriedades do DBMS

  1. Na janela "Propriedades do servidor", clique em "Segurança" na lista de páginas à esquerda. Em "Autenticação do servidor", escolha a opção de rádio "Modo de autenticação do SQL Server e Windows".

Caixa de diálogo Autenticação do SQL Server

  1. Reinicie o serviço SQLEXPRESS.

29
Oh, obrigado um milhão de vezes. Principalmente para a palavra "reiniciar" acima!
Magnus Smith

4
Eu sei que isso é velho, mas salvou totalmente minha bunda. Obrigado Prateek. Aprecie isso. PRECISA reiniciar!
Levi Fuller

3
Por que isso funcionaria se o OP declarasse explicitamente que "O Modo de Autenticação no SQL Server está definido como ambos (Windows e SQL)"?
Tim Schmelter

4
Esta resposta é redundante e não é útil para a pergunta. O OP já estabeleceu que "Modo de autenticação no SQL Server está definido como ambos (Windows e SQL)".
Manachi 27/10

1
Isso foi incrível .. !! Obrigado PrateekSaluja
Amin

44

Eu tive o mesmo problema, no entanto o meu foi porque eu não havia definido a autenticação do servidor para o "modo de autenticação do SQL Server e Windows" (que você tinha). Eu só queria mencioná-lo aqui caso alguém tenha perdido a sua pergunta.

Você pode acessar isso

  • Clique com o botão direito do mouse na instância (IE SQLServer2008)
  • Selecione "Propriedades"
  • Selecione a opção "Segurança"
  • Altere "Autenticação do servidor" para "Modo de autenticação do SQL Server e Windows"
  • Reinicie o serviço SQLServer
    • Clique com o botão direito do mouse na instância
    • Clique em "Reiniciar"

6
Passei duas horas porque não estava conseguindo reiniciar todo o servidor. É simplesmente insano que uma reinicialização seja necessária para isso. A Microsoft não tem limites para os crapware que eles cospem.
Usuário registrado

1
Essa é também uma resposta vital para o motivo pelo qual não é possível conectar-se à instância do Amazon EC2 em que servidor SQL foi instalado.
Teoman shipahi

19

Você pode acessar isso

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

Para qualquer pessoa que esteja lendo isso: Isso funcionou para mim no 2012 SQL Server também. obrigado


1
Obrigado, isso foi perfeito, direto ao ponto .. a resposta aceita é preenchida com boas informações, mas é isso que funcionou para mim.
Tony

4
Isso não funciona para o OP, pois ele mencionou que "o Modo de autenticação no SQL Server está definido como ambos (Windows e SQL)".
Tim Schmelter

1

A solução correta para o problema é garantir que a autenticação do servidor SQL esteja ativada para o SQL Server.


1

Depois de ativar o "Modo de autenticação do SQL Server e Windows", navegue para o seguinte.

  1. Gerenciamento do computador (no menu Iniciar)
  2. Serviços e Aplicações
  3. Gerenciador de Configuração do SQL Server
  4. Configuração de rede do SQL Server
  5. Protocolos para MSSQLSERVER
  6. Clique com o botão direito do mouse em TCP / IP e ative-o.

Finalmente, reinicie o SQL Server.

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.