Sintomi

Ogni utente dispone di un database predefinito. Quando si connette al computer che esegue Microsoft SQL Server e non si specifica un database di account di accesso, viene utilizzato il database predefinito. Tuttavia, se il database predefinito non è disponibile al momento della connessione, potrebbe non sarà possibile connettersi. Viene invece visualizzato il messaggio di errore 4062 o il messaggio di errore 4064, illustrato di seguito:

Impossibile aprire il database utente predefinito

Causa

Il database utente predefinito non è disponibile al momento della connessione. È possibile che il database:

  • È in modalità sospetta.

  • Non esiste più.

  • È in modalità utente singolo e l'unica connessione disponibile è già utilizzato da un utente o di qualche altro.

  • È stato disconnesso.

  • È stato impostato lo stato RESTRICTED_USER.

  • Non è in linea.

  • È impostato su status di emergenza.

  • Non è mappato all'account di accesso a un utente o l'utente è stato negato l'accesso.

  • Fa parte di un mirroring del database.

Inoltre, l'account di accesso può essere un membro di più gruppi, e il database predefinito per uno di questi gruppi è disponibile al momento della connessione.

Soluzione alternativa

Per aggirare questo problema, specificare un database valido, disponibile nella stringa di connessione. Per evitare l'errore quando non è disponibile il database predefinito dell'utente, accedere come utente che è possibile modificare gli account di accesso. Quindi, modificare il database predefinito dell'utente a un database che è attualmente disponibile per una connessione.

SQL Server 2005 e versioni successive

È possibile utilizzare l'utilità sqlcmd per modificare il database predefinito in SQL Server 2005. A tale scopo, attenersi alla seguente procedura:

  1. Fare clic su Start, scegliere Esegui, digitare cmd e quindi premere INVIO.

  2. Utilizzare uno dei metodi seguenti, a seconda del tipo di autenticazione che utilizza l'account di accesso di SQL Server:

    • Se l'account di accesso di SQL Server utilizza l'autenticazione di Microsoft Windows per connettersi all'istanza, digitare quanto segue al prompt dei comandi e quindi premere INVIO:

      E sqlcmd -S d InstanceName master

    • Se l'account di accesso di SQL Server utilizza l'autenticazione di SQL Server per connettersi all'istanza, digitare quanto segue al prompt dei comandi e quindi premere INVIO:

      master sqlcmd -S InstanceName -d - U SQLLogin -P Password

    Nota: InstanceName è un segnaposto per il nome dell'istanza di SQL Server 2005 a cui si è connessi. SQLLogin è un segnaposto per l'accesso di SQL Server il cui database predefinito è stato eliminato. La password è un segnaposto per la password di accesso di SQL Server.

  3. Al prompt di sqlcmd, digitare quanto segue e premere INVIO:

    ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBNameNota: AvailDBName è un segnaposto per il nome del database esistente che è possibile accedere tramite account di accesso nell'istanza di SQL Server.

  4. Al prompt di sqlcmd digitare GOe premere INVIO.

SQL Server 2000 e SQL Server 7.0

Per modificare il database predefinito in SQL Server 2000 e SQL Server 7.0, è possibile utilizzare l'utilità osql. A tale scopo, attenersi alla seguente procedura:

  1. Al prompt dei comandi, digitare quanto segue e premere INVIO:

    C:\ > osql -E -d master

  2. Al prompt di osql , digitare quanto segue e premere INVIO:

    1 > sp_defaultdb ' utente 's_login', 'master'

  3. Il secondo prompt dei comandi, digitare quanto segue e premere INVIO:

    2 > go

Stato

Questo è il comportamento previsto.

Ulteriori informazioni

Per riprodurre il problema, provare a connettersi con OSQL, utilizzare l'opzione -d con un database esistente in uno stato in linea normale. La connessione ha esito positivo senza alcun messaggio di errore.

Al contrario, riceverai risposte simili ai seguenti da varie utilità client di SQL Server quando il database è disponibile:

  • SQL Server Management Studio (SQL Server 2005)

    Impossibile connettersi a ServerName
    ULTERIORI INFORMAZIONI:
    Impossibile aprire il database utente predefinito. Accesso non riuscito. Accesso non riuscito per l'utente 'UserName'. (Microsoft SQL Server, errore: 4064)

  • Utilizzando l'utilità Sqlcmd in SQL Server 2005

    Msg 4064, livello 11, stato 1, il Server nomeserver, riga 1
    Impossibile aprire il database utente predefinito. Accesso non riuscito.

    Messaggio 18456, livello 14, stato 1, il Server nomeserver, riga 1 accesso non riuscito per l'utente 'UserName'.

  • Analizzatore di Query di SQL Server 2000 (QA)

    Impossibile connettersi al server TESTSERVER:
    Server: Msg 4064, livello 16, stato 1
    [Microsoft] [Driver ODBC SQL Server] [SQL Server] Impossibile aprire il database utente predefinito. Accesso non riuscito.

  • SQL Server 2000 Server Enterprise Manager (SEM)

    Stabilire una connessione potrebbe non essere a TESTSERVER - Impossibile aprire database predefinito utente 'dbid'. Verrà utilizzato il database master.

    Verificare che SQL Server è in esecuzione e verificare le proprietà di registrazione di SQL Server (facendo clic sul nodo TESTSERVER) e riprovare.

  • Un prompt dei comandi utilizzando SQL Server 2000 OSQL

    Viene visualizzato il seguente messaggio di errore quando si utilizza il C:\ > osql -E comando:

    Impossibile aprire il database utente predefinito. Accesso non riuscito.

  • Analizzatore di Query di SQL Server 7.0 (QA)

    Impossibile connettersi al server \\TESTSERVER:
    Server: Msg 4062, livello 16, stato 1
    [Microsoft] [Driver ODBC SQL Server] [SQL Server] Impossibile aprire il database utente predefinito '< ID >'. Verrà utilizzato il database master.

  • Un prompt dei comandi utilizzando SQL Server 7.0 OSQL

    Viene visualizzato il seguente messaggio di errore quando si utilizza il C:\ > osql -E comando:

    Impossibile aprire database predefinito utente 'dbid'.
    Verrà utilizzato il database master.

Nella tabella seguente fornisce ulteriori informazioni su prodotti o strumenti che automaticamente per verificare questa condizione sull'istanza di SQL Server e sulle versioni del prodotto SQL Server su cui viene valutata la regola.

Software di regola

Titolo regola

Descrizione della regola

Versioni del prodotto per la quale viene valutata la regola

System Center Advisor

Identità a livello di server SQL Server configurata con il database predefinito inesistente

System Center consente di verificare se l'account di accesso presente nell'istanza di SQL Server sono configurati con un database predefinito che non esiste più. Esaminare i dettagli che vengono forniti nella sezione raccolte informazioni dell'avviso advisor e seguono i passaggi descritti in questo articolo per risolvere la situazione.

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

SQL Server, 2017 in Windows

Serve aiuto?

Amplia le tue competenze

Esplora i corsi di formazione >

Ottieni in anticipo le nuove caratteristiche

Partecipa a Microsoft Insider >

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×