Mensagem de erro quando liga a uma instância do SQL Server: "Não é possível abrir a base de dados do utilizador predefinido"

Traduções de Artigos Traduções de Artigos
Artigo: 307864 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Cada utilizador tem uma base de dados predefinido. Quando ligar ao computador com o Microsoft SQL Server e não especificar uma base de dados de início de sessão, é utilizada a base de dados predefinida. No entanto, se a base de dados predefinida não estiver disponível no momento da ligação, poderá não conseguir estabelecer ligação. Em vez disso, recebe a mensagem de erro 4062 ou erro 4064. O texto das mensagens de erro é o seguinte:
Não é possível abrir a base de dados do utilizador predefinida

Causa

A base de dados do utilizador predefinido não está disponível no momento da ligação. É possível que a base de dados:
  • Está no modo suspeito.
  • Já não existe.
  • Está no modo de utilizador único e a única ligação disponível já está a ser utilizada por outra pessoa ou por outra coisa.
  • Foi desligado.
  • Foi definido para o estado RESTRICTED_USER.
  • Está offline.
  • Está definido para o estado de emergência.
  • Não tiver a conta de início de sessão mapeado para um utilizador ou o utilizador foi negado o acesso.
  • Faz parte de um espelho da base de dados.
Além disso, a conta de início de sessão pode ser um membro de vários grupos e a base de dados predefinida para um desses grupos não está disponível no momento da ligação.

Como contornar

Para contornar este comportamento, especifique uma base de dados válido disponível na cadeia de ligação.Para evitar o erro quando a base de dados do utilizador predefinida estiver indisponível, iniciar sessão como um utilizador pode modificar os inícios de sessão. Em seguida, altere base de dados do utilizador predefinida para uma base de dados que está actualmente disponível para uma ligação.

SQL Server 2005 e versões posteriores

Pode utilizar o utilitário sqlcmd para alterar a base de dados predefinida no SQL Server 2005. Para tal, siga estes passos:
  1. Clique em Iniciar, clique em Executar, tipo cmd, e, em seguida, prima ENTER.
  2. Utilize um dos seguintes métodos, dependendo do tipo de autenticação que utiliza o início de sessão do SQL Server:
    • Se o início de sessão do SQL Server utiliza a autenticação do Microsoft Windows para ligar à instância, escreva o seguinte na linha de comandos e prima ENTER:
      SQLCMD ? E -S InstanceName mestre ? d
    • Se o início de sessão do SQL Server utiliza a autenticação do SQL Server para ligar à instância, escreva o seguinte na linha de comandos e prima ENTER:
      SQLCMD -S InstanceName mestre -d -U SQLLogin -P Palavra-passe
    Nota InstanceName é um marcador de posição para o nome da instância do SQL Server 2005 ao qual está a ligar. SQLLogin é um marcador para o início de sessão do SQL Server cuja base de dados predefinida foi eliminada. Palavra-passe é um marcador de posição para a palavra-passe de início de sessão do SQL Server.
  3. Na linha de comandos sqlcmd, escreva o seguinte e, em seguida, prima ENTER:
    ALTERAR O INÍCIO DE SESSÃO SQLLogin COM DEFAULT_DATABASE = AvailDBName
    Nota AvailDBName é um marcador de posição para o nome da base de dados existente que pode ser acedido pelo início de sessão do SQL Server na instância.
  4. Na linha de comandos sqlcmd, escreva IR, e, em seguida, prima ENTER.

SQL Server 2000 e SQL Server 7.0

Pode utilizar o utilitário osql para alterar a base de dados predefinida no SQL Server 2000 e no SQL Server 7.0. Para tal, siga estes passos:
  1. Na linha de comandos, escreva o seguinte e prima ENTER:
    Mestre -d -E de C:\>OSQL
  2. Na linha a OSQL linha de comandos, escreva o seguinte e prima ENTER:
    1 > sp_defaultdb ' utilizador 's_login', 'master'
  3. Na segunda linha de comandos, escreva o seguinte e prima ENTER:
    2 > ir

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Para demonstrar este comportamento, tente ligar com OSQL e utilizar a opção -d com uma base de dados existente que está num estado normal online. A ligação é efectuada com êxito sem qualquer mensagem de erro.

Por outro lado, recebe as respostas que são semelhantes às seguintes de vários utilitários de cliente de SQL Server quando a base de dados não está disponível:
  • SQL Server Management Studio (SQL Server 2005)
    Não consegue ligar a Nome do servidor
    OBTER INFORMAÇÕES ADICIONAIS:
    Não é possível abrir a base de dados do utilizador predefinida. Falha ao iniciar sessão.Início de sessão falhou para o utilizador 'Nome de utilizador'. (Microsoft SQL Server, o erro: 4064)
  • Utilizar o utilitário de Sqlcmd no SQL Server 2005
    Msg 4064, nível 11, 1, estado de servidor Nome do servidorLinha 1
    Não é possível abrir a base de dados do utilizador predefinida. Falha ao iniciar sessão.
    Erro 18456, 14. o, o estado 1, servidor de nível Nome do servidorLinha 1Login falhou para o utilizador 'Nome de utilizador'.
  • Analisador de consultas do SQL Server 2000 (QA)
    Não é possível ligar ao servidor TESTSERVER:
    Servidor: Msg 4064, nível 16, indicar 1
    [Microsoft][Controlador ODBC SQL Server][Servidor SQL]Não é possível abrir a base de dados do utilizador predefinida. Falha ao iniciar sessão.
  • SQL Server 2000 Server Enterprise Manager (SEM)
    Uma ligação não foi possível estabelecer a TESTSERVER - não é possível abrir a base de dados de predefinição de utilizador 'dbid'. Base de dados principal a utilizar em vez disso.

    Verificar que SQL Server está a funcionar e verificar as propriedades de registo do SQL Server (clicando com o no nó TESTSERVER) e tente novamente.
  • Numa linha de comandos utilizando o SQL Server 2000 OSQL

    Recebe a seguinte mensagem de erro quando utiliza o comando C:\>osql -E :
    Não é possível abrir a base de dados do utilizador predefinida. Falha ao iniciar sessão.
  • Analisador de consultas do SQL Server 7.0 (QA)
    Não é possível ligar ao servidor \\TESTSERVER:
    Servidor: Erro 4062, nível 16, indicar 1
    [Microsoft][Controlador ODBC SQL Server][Servidor SQL]Não é possível abrir a base de dados do utilizador predefinida '<ID>'. Em vez disso, a utilizar a base de dados principal.</ID>
  • Numa linha de comandos utilizando o SQL Server 7.0 OSQL

    Recebe a seguinte mensagem de erro quando utiliza o comando C:\>osql -E :
    Não é possível abrir a base de dados de predefinição de utilizador 'dbid'.
    Base de dados principal a utilizar em vez disso.
A tabela seguinte fornece mais informações sobre os produtos ou ferramentas que verificam automaticamente para esta condição à sua instância do SQL Server e sobre as versões do produto SQL Server com o qual a regra é avaliada.
Reduzir esta tabelaExpandir esta tabela
Software de regraTítulo de regraDescrição da regraVersões de produtos contra os quais a regra é avaliada
O System Center AdvisorPrincipais de nível do servidor de SQL Server configurados com a base de dados predefinida inexistenteAdvisorchecks do System Center se apresentarem qualquer inícios de sessão na instância do SQL Server estão configurados com uma base de dados predefinida que já não existe. Reveja os detalhes que são fornecidos na secção "Informações recolhidas" alerta de theadvisor e siga os passos descritos neste artigo para resolver a situação. SQL Server 2008

SQL Server 2008 R2

Servidor SQL 2012

Propriedades

Artigo: 307864 - Última revisão: 24 de junho de 2014 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • SQL Server 2012 Enterprise Core
Palavras-chave: 
kbtshoot kbsqlsetup kbprb kbmt KB307864 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307864

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com