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.

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

Começar gratuitamente
codeDB

Monitoramento inteligente de SQL Server com agente local seguro e diagnósticos em tempo real.

Produto

RecursosPreçosComparativoscodeDB Lens (grátis)

© 2026 codeDB. Todos os direitos reservados.

Powered by codeDB

codeDB Informática Ltda — CNPJ 18.953.756/0001-10 — Florianópolis/SC