Erro no logon no Microsoft SQL Server: 18456


295

Estou recebendo esse erro ao tentar conectar-me ao SQL Server.

Erro do Microsoft SQL Server: 18456

Alguém pode me dizer o que significa o código de erro?


6
Uma pesquisa superficial parece indicar que o código de erro é uma falha de logon e geralmente é acompanhada de informações mais detalhadas.
David

E essas informações mais detalhadas devem estar no log de erros do servidor sql. O número em si deliberadamente não conta muito, então os crackers não podem usá-lo para obter pistas sobre onde suas tentativas estão dando errado.
Tony Hopkinson

informações úteis encontradas aqui
sairfan

1
Eu só tinha querun as administrator
Jacksonkr

Respostas:


706

Se você estiver tentando se conectar usando a "Autenticação do SQL Server", poderá modificar a autenticação do servidor:

No Microsoft SQL Server Management Studio no explorador de objetos:

  1. Clique com o botão direito do mouse no servidor e clique em Properties

  2. Vá para a Securitypágina

  3. Em Server authenticationescolher o SQL Server and Windows Authentication modebotão de opção

  4. Clique OK

  5. Reinicie os serviços SQL


32
Obrigado. Pena que não haja mensagem de aviso ao tentar adicionar usuários.
precisa saber é o seguinte

12
O que exatamente você quer dizer com "Clique com o botão direito do mouse no servidor e clique em Propriedades", onde fica isso?
Emcor

9
Ele significa o nó superior na sua Object Explorer - o cilindro amarelo com o botão play
JGilmartin

21
Esse é um problema muito comum que as pessoas encontram. O fato de você poder criar logons do SQL Server para o conteúdo do seu coração sem perceber que essa configuração simples está desativada é um IMO bastante confuso. Eu recomendo isso como a resposta correta.

7
@ JGilmartin, Como exatamente você será capaz de se conectar ao servidor no Pesquisador de Objetos quando tiver o Erro 18456, o que significa que você não pode se conectar ?
Shai Alon

69

Confira este artigo do blog da equipe da plataforma de dados.

http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

Você realmente precisa examinar a parte do estado da mensagem de erro para encontrar a causa raiz do problema.

2, 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, 12 = Valid login but server access failure
13 = SQL Server service paused
18 = Change password required

Depois, o Google como corrigir o problema.


42
Não toot to horn, mas eu compilei muito mais informações aqui: sqlblog.com/blogs/aaron_bertrand/archive/2011/01/14/…
Aaron Bertrand

Você sempre toca sua buzina ... Obrigado pelo voto positivo? Mas sua lista parece ser mais completa! Eu acho que a maioria das pessoas não sabe usar o Google.
CRAFTY DBA

1
Eu estava tentado a up-voto, no entanto eu estou deprimido, pois respondendo perguntas que poderiam ser respondidas pelo Google apenas encoraja as pessoas a manter a perguntar aqui em vez de procurar ...
Aaron Bertrand

13
99% das perguntas aqui provavelmente poderiam ser respondidas pelo Google, no entanto, uma pergunta e resposta simples e econômica economizam tempo considerável de pesquisa e despejam artigos / blogs muitas vezes supérfluos, e assim um voto positivo de mim!
Chris Nevill #

12
Aqui é onde eu encontrar as respostas quando eu usar o Google (google pesquisas SO melhor do que pesquisas tanta ...)
Cos Callis

27

Antes de abrir, clique com o botão direito e escolha 'Executar como administrador'. Isso resolveu o problema para mim.


1
essa foi a solução para mim. Eu tinha State: 1na mensagem de erro.
GraehamF

@Gsic Você é um verdadeiro salvador. Estou lutando há mais de um dia e sua solução resolveu isso. Obrigado
Karthik

Antes de abrir o que ??
Mike

11

primeiro veja os detalhes do erro se "state" for "1" Verifique se o banco de dados está definido para autenticação SQL e Windows em SQL server / Properties / Security.

para outro estado veja as respostas acima ....


1
OMG obrigado! Nenhum dos meus logins estava funcionando, então me deparei com essa resposta e descobri que, de alguma forma, minha instância do SQL Express foi alterada de "autenticação SQL e Windows" para "autenticação Windows". Mudou de volta e todos os trabalhos.
Ian Kemp

1
Além disso, fechando o SSMS não é suficiente, é necessário reiniciar o serviço SqlServer para que a alteração tenha efeito.
Ravid Goldenberg

10

Eu enfrentei esse problema.

Por favor, olhe a imagem em anexo,

Etapa 1: Vá para a propriedade do servidor

Etapa 2: Vá para Segurança

Etapa 3: Alterar a autenticação do servidor como SQL Server e WindowsAuthenication mode

e reinicie o servidor SQL.

insira a descrição da imagem aqui


9
  1. Verifique se a autenticação de modo misto está ativada no servidor-> propriedades
  2. Em seguida, crie um login no servidor-> segurança
  3. crie um usuário para esse login no seu banco de dados
  4. Em seguida, reinicie o servidor clicando com o botão direito do mouse na instância e selecione reiniciar

5

Aconteceu comigo e acabou sendo diferente de todos os outros casos listados aqui.

Por acaso, tenho dois servidores virtuais hospedados no mesmo cluster, cada um com seu próprio endereço IP. O host configurou um dos servidores para o SQL Server e o outro para o servidor da Web. No entanto, o SQL Server está instalado e em execução nos dois. O host esqueceu de mencionar qual dos servidores é o SQL e qual é a Web, então eu assumi que o primeiro é Web, o segundo é SQL.

Quando me conectei ao (o que eu pensava ser) SQL Server e tentei me conectar via SSMS, escolhendo Autenticação do Windows, recebi o erro mencionado nesta pergunta. Depois de puxar muitos cabelos, examinei toda a configuração, incluindo Configuração de rede do SQL Server, Protocolos para MSSQLSERVER:

captura de tela da configuração de TCP / IP

Clicar duas vezes no TCP / IP me deu o seguinte:

Propriedades TCP / IP, mostrando o endereço IP incorreto

O endereço IP era do outro servidor virtual! Isso finalmente me fez perceber que eu simplesmente confundia entre os servidores e tudo funcionava bem no segundo servidor.


4

Se você alterar uma credencial de usuário de logon ou adicionar um novo usuário de logon, depois que precisar fazer login, será necessário reiniciar o Serviço do SQL Server. por isso

IR para -> Serviços linha de cor cinza

Em seguida, vá para o SQL Server (MSSQLSERVER) e pare e comece novamente

Agora tente fazer login, espero que você possa.

obrigado


3

18456 Lista de estados de erro

ESTADO DO ERRO DESCRIÇÃO DO ERRO

  • Estado 2 e estado 5 ID do usuário inválido
  • Estado 6 Tentativa de usar um nome de logon do Windows com autenticação SQL
  • Estado 7 Login desativado e incompatibilidade de senha
  • Incompatibilidade de senha do estado 8
  • Estado 9 Senha inválida
  • Estado 11 e Estado 12 Login válido, mas falha no acesso ao servidor
  • Serviço do SQL Server do estado 13 pausado
  • Estado 18 Alteração de senha necessária

Causas potenciais Abaixo está uma lista de razões e uma breve explicação sobre o que fazer:

Autenticação SQL não ativada : se você usar o Logon SQL pela primeira vez na instância do SQL Server, o erro 18456 ocorre com muita frequência porque o servidor pode estar definido no modo Autenticação do Windows (apenas).

Como consertar ? Verifique esta página do SQL Server e do Modo de autenticação do Windows.

ID do usuário inválido: o SQL Server não consegue encontrar o ID do usuário especificado no servidor que você está tentando obter. A causa mais comum é que esse ID do usuário não recebeu acesso no servidor, mas isso também pode ser um erro de digitação ou você acidentalmente está tentando se conectar a um servidor diferente (típico se você usar mais de um servidor)

Senha inválida: senha incorreta ou apenas um erro de digitação. Lembre-se de que esse nome de usuário pode ter senhas diferentes em servidores diferentes.

erros menos comuns: O ID do usuário pode estar desativado no servidor. O logon do Windows foi fornecido para autenticação SQL (mude para Autenticação do Windows. Se você usa o SSMS, pode ser necessário executar como usuário diferente para usar esta opção). A senha pode ter expirado e provavelmente vários outros motivos…. Se você souber de outros, me avise.

18456 explicações do estado 1: Normalmente, o Microsoft SQL Server fornecerá o estado de erro 1, que na verdade não significa nada além do erro 18456. O estado 1 é usado para ocultar o estado real para proteger o sistema, o que para mim faz sentido. Abaixo está uma lista com todos os estados diferentes e, para obter mais informações sobre como recuperar estados precisos, visite Noções básicas sobre mensagens de erro "Falha no login" (Erro 18456) no SQL Server 2005

espero que ajude


2

Clique com o botão direito do mouse em Usuário, vá para propriedades, altere o banco de dados padrão para mestre. Esta é a impressão da tela da imagem que mostra o que você deve verificar se tiver o erro 19456. Às vezes, o padrão é um banco de dados que o usuário não possui. permissão


2

Primeiro, vá para a barra iniciar, procure os serviços locais. Em seguida, clique em "exibir serviços locais". Em seguida, ele abrirá a janela de serviço, vá para o SQL Server (MSSQLSERVER), clique com o botão direito do mouse e clique em parar. Agora você pode fazer login e colocar seu nome de usuário como 'sa' e a senha é a sua senha ganha.



1

Verifique se você está conectado à rede se este é um PC membro do domínio. Além disso, verifique se você não está em um PC doméstico duplo, pois suas rotas podem estar incorretas devido a métricas de rede. Eu tive esse problema quando não consegui me conectar ao domínio, a autenticação do Windows SQL mudou para a conta local do PC, mas o registrei como autenticação SQL. Depois de desativar o adaptador sem fio e reiniciar, a integração do Windows voltou à conta do domínio e foi autenticada. Eu já havia configurado o modo misto como você já havia feito, para que as postagens anteriores não se apliquem.



0

Eu acredito que isso pode acontecer se você estiver tentando fazer logon com um usuário definido no Active Directory, mas tente usar "Autenticação do SQL Server" na tela de logon. Não sei como especificar um usuário diferente com autenticação NTLM / Windows: Quando clico no menu suspenso Autenticação do Windows, o nome de usuário e a senha ficam em branco e só consigo fazer login como eu.


0

No meu caso, várias tentativas erradas bloquearam a conta. Para fazer isso, tentei executar a consulta abaixo e funcionou: ALTER LOGIN WITH PASSWORD = UNLOCK E certifique-se de definir a opção "Enforce Password Security" para que um usuário específico seja desmarcado por clique com o botão direito do mouse em Sql Server -> Propriedades.


0

Solução de problemas de conexão do SQL Server

Caso você não consiga se conectar com a autenticação SQL e tenha tentado as outras soluções.

Você pode tentar o seguinte:

Verifique a conectividade

  • Desative o firewall.
  • Execute o PortQry em 1434 e verifique a resposta.

Verifique o estado

  • Tente se conectar ao SSMS ou sqlcmd e verifique a mensagem.
  • O estado 1 raramente é documentado, mas significa apenas que você não tem o direito de conhecer o verdadeiro estado.
  • Veja o arquivo de log no diretório do servidor SQL para saber qual é o estado.

O Estado 5

O que ? meu login não existe? está bem ali, eu posso vê-lo no SSMS. Como pode ser ?

A explicação mais provável é a mais provável.

O estado do login

  • Destrua, recrie, habilite.
  • redefina a senha.

Ou...

"Você não olha para o lugar certo" ou "o que vê não é o que pensa".

O conflito DB local e SQLEXPRESS

Se você se conectar ao SSMS com autenticação do Windows e sua instância for denominada SQLEXPRESS, provavelmente você está olhando para o LocalDb e não para o servidor certo . Então você acabou de criar seu login no LocalDb.

Quando você se conecta por meio da autenticação do SQL Server com o SSMS, ele tenta se conectar ao servidor real do SQLEXPRESS onde seu amado logon ainda não existe.

Nota adicional: Verifique na guia de parâmetros de conexão se você não esqueceu alguma string de conexão estranha lá.



0

Outra solução funcionou para mim. serever->security->logins->new logins->General->crie seu nome de usuário como nome de login, clique em autenticação do servidor sql adicione senhas

desmarque a verificação de senha em três caixas de seleção. Isso vai funcionar.

Lembre-se de alterar as propriedades do servidor -> Segurança de Server authenticationparaSQL Server and Windows Authentication mode


0

você pode fazer no linux for mssql mudar a senha para uma conta

Instalação do sudo / opt / mssql / bin / mssql-conf

The license terms for this product can be downloaded from
 http://go.microsoft.com/fwlink/?LinkId=746388 Jump Jump
and found in /usr/share/doc/mssql-server/LICENSE.TXT.
Do you accept the license terms? [Yes/No]:yes
  Setting up Microsoft SQL Server
Enter the new SQL Server system administrator password:  --Enter strong password
Confirm the new SQL Server system administrator password: --Enter strong password
 starting Microsoft SQL Server...
 Enabling Microsoft SQL Server to run at boot...
Setup completed successfully.

0

Eu recebi esse erro depois de criar um novo usuário sysadmin na minha instância SQL. Meu usuário administrador foi criado em um domínio específico MyOrganization / useradmin

O uso do useradmin em um ambiente desconectado permite criar outros usuários usando a autenticação do SQL Server, mas assim que você tenta fazer o login, obtém

Erro do Microsoft SQL Server: 18456

Para corrigir o problema, tente conectar-se novamente à rede da organização e crie o usuário enquanto estiver conectado. Depois, você poderá se desconectar e funcionar.


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.