codeDB
EntrarTestar 7 dias grátis
Erros

Erro 18456 no SQL Server: "Login failed for user" — causas por State

26 de agosto de 2026 · 5 min de leitura

Mensagem que o cliente recebe: "Login failed for user 'nome_do_usuario'." — Msg 18456, Level 14, State 1. O State 1 é proposital: o SQL Server nunca revela pro cliente se o problema foi usuário inexistente ou senha errada (evita dar dica pra quem está tentando adivinhar credenciais). O motivo real só aparece no log de erros do servidor (ERRORLOG), visível apenas a quem tem acesso de admin na instância.

Onde ver o State real

EXEC sp_readerrorlog 0, 1, 'Login failed';

O que cada State comum significa

  • State 5 — o login não existe na instância.
  • State 6 — tentativa de login SQL num servidor configurado só para autenticação Windows.
  • State 7 — o login existe, mas está desabilitado.
  • State 8 — login existe, senha incorreta.
  • State 11 ou 12 — login do Windows válido, mas sem permissão de acesso ao servidor.
  • State 18 — a senha expirou e precisa ser trocada.
  • State 38 ou 40 — o banco de dados padrão do login está inacessível ou offline.

Como investigar rápido

Se o erro está afetando uma aplicação inteira (não só um usuário), o State 38/40 (banco padrão inacessível) e o State 8 (senha errada, geralmente após rotação de credencial) são os dois primeiros suspeitos — cobrem a maioria dos incidentes de "aplicação parou de conectar do nada".

O codeDB monitora falhas de login recorrentes e picos incomuns, então um ataque de força bruta ou uma credencial rotacionada sem avisar o time aparece como alerta, não como usuário reclamando.

Artigos relacionados

Monitore seu SQL Server enquanto aprende.

7 dias grátis para aplicar tudo que você aprendeu aqui no seu próprio ambiente.

Começar gratuitamente