Condividi tramite


Connettersi a SQL Server se gli amministratori di sistema sono bloccati

In questo argomento viene descritto come ottenere nuovamente l'accesso a Motore di database di SQL Server come amministratore di sistema. Un amministratore di sistema può perdere l'accesso a un'istanza di SQL Server per uno dei motivi seguenti:

  • Tutti gli account di accesso membri del ruolo predefinito del server sysadmin sono stati rimossi per errore.

  • Tutti i gruppi di Windows membri del ruolo predefinito del server sysadmin sono stati rimossi per errore.

  • Gli account di accesso membri del ruolo predefinito del server sysadmin sono assegnati a utenti che hanno lasciato la società o che non sono disponibili.

  • L'account sa è disabilitato o la password non è nota ad alcun utente.

Un metodo per ottenere nuovamente l'accesso consiste nel reinstallare SQL Server e nel collegare tutti i database alla nuova istanza. Questa soluzione richiede molto tempo. Per recuperare gli account di accesso, inoltre, potrebbe essere necessario ripristinare il database master da un backup. Se il backup del database master è meno recente, potrebbe non contenere tutte le informazioni. Se il backup del database master è più recente, potrebbe includere gli stessi account di accesso dell'istanza precedente e, pertanto, gli amministratori potrebbero risultare ancora bloccati.

Soluzione

Avviare l'istanza di SQL Server in modalità utente singolo utilizzando l'opzione -m o -f. Qualsiasi membro del gruppo Administrators locale del computer potrà quindi connettersi all'istanza di SQL Server come membro del ruolo predefinito del server sysadmin.

[!NOTA]

Quando si avvia un'istanza di SQL Server in modalità utente singolo, arrestare innanzitutto il servizio SQL Server Agent. In caso contrario, SQL Server Agent potrebbe eseguire per primo la connessione impedendo la connessione come secondo utente.

Quando si utilizza l'opzione -m con sqlcmd o SQL Server Management Studio, è possibile limitare le connessioni a un'applicazione client specifica. L'utilizzo di -m"sqlcmd", ad esempio, consente di limitare le connessioni a una singola connessione, che deve identificarsi come programma client sqlcmd. Utilizzare questa opzione quando si avvia SQL Server in modalità utente singolo e un'applicazione client sconosciuta accede all'unica connessione disponibile. Per connettersi tramite l'editor di query in Management Studio, utilizzare l'opzione -m"Microsoft SQL Server Management Studio - Query".

Nota sulla sicurezzaNota sulla sicurezza

Non utilizzare tale opzione come funzionalità di sicurezza. L'applicazione client fornisce il nome dell'applicazione client stessa e può indicare un nome falso come parte della stringa di connessione.

Per istruzioni dettagliate su come avviare SQL Server in modalità utente singolo, vedere Configurazione delle opzioni di avvio del server (Gestione configurazione SQL Server).

Istruzioni dettagliate

Nelle istruzioni seguenti viene illustrato il processo per il collegamento a SQL Server 2012 in esecuzione in Windows 8. Sono fornite delle lievi modifiche per le versioni precedenti di SQL Server o Windows. Queste istruzioni devono essere eseguite quando si effettua l'accesso a Windows come membro del gruppo di amministratori locali e si presuppone che nel computer sia installato SQL Server Management Studio.

  1. Nella pagina iniziale avviare SQL Server Management Studio. Selezionare Server registrati nel menu Visualizza (se il server non è ancora registrato, fare clic con il pulsante destro del mouse su Gruppi di server locali, scegliere Attività, quindi Registra server locali).

  2. Nell'area Server registrati fare clic con il pulsante destro del mouse sul server, quindi scegliere Gestione configurazione SQL Server. Dovrebbe essere visualizzata la richiesta di autorizzazione all'esecuzione come amministratore. Successivamente, aprire il programma Gestione configurazione.

  3. Chiudere Management Studio.

  4. Nel riquadro a sinistra di Gestione configurazione SQL Server selezionare Servizi di SQL Server. Nel riquadro a destra individuare l'istanza di SQL Server (nell'istanza predefinita di SQL Server è incluso (MSSQLSERVER) dopo il nome del computer; le istanze denominate vengono visualizzate in maiuscolo con lo stesso nome presente in Server registrati). Fare clic con il pulsante destro del mouse sull'istanza di SQL Server, quindi selezionare Proprietà.

  5. Nella casella Specificare un parametro di avvio della scheda Parametri di avvio digitare -m (cioè un trattino seguito dalla lettera m minuscola), quindi fare clic su Add .

    [!NOTA]

    In alcune versioni precedenti di SQL Server non è presente alcuna scheda Parametri di avvio. In questo caso, nella scheda Avanzate fare doppio clic su Parametri di avvio. I parametri vengono visualizzati in una finestra molto piccola. Fare attenzione a non modificare nessuno dei parametri esistenti. Al termine, aggiungere un nuovo parametro ;-m (cioè un punto e virgola seguito da un trattino e una lettera m minuscola), quindi fare clic su OK .

  6. Fare clic su OK e, dopo il messaggio di riavvio, fare clic con il pulsante destro del mouse sul nome del server, quindi selezionare Riavvia.

  7. Dopo il riavvio di SQL Server, il server sarà in modalità utente singolo. Assicurarsi che SQL Server Agent non sia in esecuzione, altrimenti l'unica connessione presente non sarà più disponibile a causa del relativo utilizzo da parte di questo servizio.

  8. Nella schermata iniziale di Windows 8 fare clic con il pulsante destro del mouse sull'icona di Management Studio. Nella parte inferiore della schermata selezionare Esegui come amministratore (le credenziali di amministratore verranno passate in SSMS).

    [!NOTA]

    Per le versioni precedenti di Windows, l'opzione Esegui come amministratore viene visualizzata come sottomenu.

    In alcune configurazioni, tramite SSMS si tenterà di stabilire diverse connessioni. Non sarà possibile stabilire più connessioni poiché SQL Server è in modalità utente singolo. È possibile scegliere di effettuare una delle azioni riportate di seguito.

    1. Effettuare la connessione con Esplora oggetti mediante l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore). Espandere Sicurezza, Account di accesso e fare doppio clic sul proprio account di accesso. Nella pagina Ruoli server selezionare sysadmin, quindi fare clic su OK.

    2. Anziché effettuare la connessione con Esplora oggetti, utilizzare una finestra Query tramite l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore) (si tratta dell'unica modalità di connessione possibile se non è stato utilizzato Esplora oggetti). Eseguire un codice come il seguente per aggiungere un nuovo account di accesso con autenticazione di Windows che fa parte del ruolo predefinito del server sysadmin. Nell'esempio seguente viene aggiunto un utente di dominio denominato CONTOSO\PatK.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];
      
    3. Se SQL Server è in esecuzione nella modalità di autenticazione mista, effettuare la connessione con una finestra Query utilizzando l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore). Eseguire un codice come il seguente per creare un nuovo account di accesso con autenticazione di SQL Server che fa parte del ruolo predefinito del server sysadmin.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
      
      Nota di attenzioneAttenzione

      Sostituire ************ con una password complessa.

    4. Se SQL Server è in esecuzione nella modalità di autenticazione mista e si desidera reimpostare la password dell'account sa, effettuare la connessione con una finestra Query utilizzando l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore). Modificare la password dell'account sa con la sintassi seguente.

      ALTER LOGIN sa WITH PASSWORD = '************';
      
      Nota di attenzioneAttenzione

      Sostituire ************ con una password complessa.

  9. Tramite i passaggi seguenti viene ora di nuovo impostata la modalità multiutente per SQL Server. Chiudere SSMS.

  10. Nel riquadro a sinistra di Gestione configurazione SQL Server selezionare Servizi di SQL Server. Nel riquadro a destra fare clic con il pulsante destro del mouse sull'istanza di SQL Server, quindi scegliere Proprietà.

  11. Nella casella Parametri esistenti della scheda Parametri di avvio selezionare -m, quindi fare clic su Remove.

    [!NOTA]

    In alcune versioni precedenti di SQL Server non è presente alcuna scheda Parametri di avvio. In questo caso, nella scheda Avanzate fare doppio clic su Parametri di avvio. I parametri vengono visualizzati in una finestra molto piccola. Rimuovere i caratteri ;-m aggiunti in precedenza e fare clic su OK.

  12. Fare clic con il pulsante destro del mouse sul nome del server, quindi scegliere Riavvia.

A questo punto è possibile connettersi normalmente con uno degli account che fa parte del ruolo predefinito del server sysadmin.

Vedere anche

Concetti

Avvio di SQL Server in modalità utente singolo

Opzioni di avvio del servizio del motore di database