codeDB
EntrarTestar 7 dias grátis
Erros

"Cannot open database" no SQL Server: causas e como resolver

26 de agosto de 2026 · 4 min de leitura

Mensagem mais comum: "Cannot open database "X" requested by the login. The login failed." — Msg 4060, Level 11. Mas "cannot open database" não é uma causa única — é uma frase que aparece em pelo menos três erros diferentes, com soluções diferentes.

As três variantes

  • Msg 4060 — o login é válido, mas o banco pedido explicitamente na conexão está inacessível (offline, em restore, ou não existe mais).
  • Msg 4064 — o login é válido, mas o banco padrão dele (o que a aplicação não especificou explicitamente) está inacessível. Comum depois de mover, renomear ou colocar offline o banco padrão de um login sem avisar quem configurou a connection string.
  • Msg 916 — o login existe e está ativo na instância, mas não tem usuário mapeado dentro daquele banco específico (situação diferente de senha errada ou login inexistente).

Como diferenciar rápido

SELECT name, state_desc, is_read_only
FROM sys.databases
WHERE name = 'SeuBanco';

Se o estado não for ONLINE, a causa é o banco (4060/4064) — não tem o que investigar do lado do login. Se o estado estiver ONLINE normalmente, o problema é mapeamento de usuário dentro do banco (916), não o login em si.

Se o problema for mesmo o login, não o banco → Erro 18456 explicado →

O codeDB monitora o estado de cada banco (online/offline/restoring/suspect) continuamente, então uma mudança de estado aparece como alerta antes de virar chamado de "a aplicação não conecta mais".

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