Connettersi a SQL Server se gli amministratori di sistema sono bloccatiConnect to SQL Server When System Administrators Are Locked Out

In questo argomento viene descritto come ottenere nuovamente l'accesso al Motore di database di SQL ServerSQL Server Database Engine come amministratore di sistema.This topic describes how you can regain access to the Motore di database di SQL ServerSQL Server Database Engine as a system administrator. Un amministratore di sistema può perdere l'accesso a un'istanza di SQL ServerSQL Server per uno dei motivi seguenti:A system administrator can lose access to an instance of SQL ServerSQL Server because of one of the following reasons:

  • Tutti gli account di accesso membri del ruolo predefinito del server sysadmin sono stati rimossi per errore.All logins that are members of the sysadmin fixed server role have been removed by mistake.

  • Tutti i gruppi di Windows membri del ruolo predefinito del server sysadmin sono stati rimossi per errore.All Windows Groups that are members of the sysadmin fixed server role have been removed by mistake.

  • 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.The logins that are members of the sysadmin fixed server role are for individuals who have left the company or who are not available.

  • L'account sa è disabilitato o la password non è nota ad alcun utente.The sa account is disabled or no one knows the password.

    Un metodo per ottenere nuovamente l'accesso consiste nel reinstallare SQL ServerSQL Server e nel collegare tutti i database alla nuova istanza.One way in which you can regain access is to reinstall SQL ServerSQL Server and attach all the databases to the new instance. Questa soluzione richiede molto tempo. Per recuperare gli account di accesso, inoltre, può essere necessario ripristinare il database master da un backup.This solution is time-consuming; and, to recover the logins, it might require restoring the master database from a backup. Se il backup del database master è meno recente, potrebbe non contenere tutte le informazioni.If the backup of the master database is older, it might not have all the information. Se il backup del database master è più recente, potrebbe includere gli stessi account di accesso dell'istanza precedente e, pertanto, gli amministratori possono risultare ancora bloccati.If the backup of the master database is more recent, it might have the same logins as the previous instance; therefore, administrators will still be locked out.

SoluzioneResolution

Avviare l'istanza di SQL ServerSQL Server in modalità utente singolo usando l'opzione -m o -f .Start the instance of SQL ServerSQL Server in single-user mode by using either the -m or -f options. Qualsiasi membro del gruppo Administrators locale del computer potrà quindi connettersi all'istanza di SQL ServerSQL Server come membro del ruolo predefinito del server sysadmin.Any member of the computer's local Administrators group can then connect to the instance of SQL ServerSQL Server as a member of the sysadmin fixed server role.

Nota

Quando si avvia un'istanza di SQL ServerSQL Server in modalità utente singolo, arrestare innanzitutto il servizio SQL ServerSQL Server Agent.When you start an instance of SQL ServerSQL Server in single-user mode, first stop the SQL ServerSQL Server Agent service. In caso contrario, SQL ServerSQL Server Agent potrebbe eseguire per primo la connessione impedendo la connessione come secondo utente.Otherwise, SQL ServerSQL Server Agent might connect first and prevent you from connecting as a second user.

Quando si usa l'opzione -m con sqlcmd o SQL Server Management StudioSQL Server Management Studio, è possibile limitare le connessioni a un'applicazione client specifica.When you use the -m option with sqlcmd or SQL Server Management StudioSQL Server Management Studio, you can limit the connections to a specified client application. Ad esempio, -m"sqlcmd" limita le connessioni a una singola connessione, che deve identificarsi come programma client sqlcmd .For example, -m"sqlcmd" limits connections to a single connection and that connection must identify itself as the sqlcmd client program. Utilizzare questa opzione quando si avvia SQL ServerSQL Server in modalità utente singolo e un'applicazione client sconosciuta accede all'unica connessione disponibile.Use this option when you are starting SQL ServerSQL Server in single-user mode and an unknown client application is taking the only available connection. Per connettersi con l'editor di query in Management StudioManagement Studio, usare -m"Microsoft SQL Server Management Studio - Query".To connect through the Query Editor in Management StudioManagement Studio, use -m"Microsoft SQL Server Management Studio - Query".

Importante

Non utilizzare tale opzione come caratteristica di sicurezza.Do not use this option as a security feature. L'applicazione client fornisce il nome dell'applicazione client stessa e può indicare un nome falso come parte della stringa di connessione.The client application provides the client application name, and can provide a false name as part of the connection string.

Per istruzioni dettagliate su come avviare SQL ServerSQL Server in modalità utente singolo, vedere Configurare le opzioni di avvio Server (Gestione configurazione SQL Server).For step-by-step instructions about how to start SQL ServerSQL Server in single-user mode, see Configure Server Startup Options (SQL Server Configuration Manager).

Istruzioni dettagliateStep-By-Step Instructions

Nelle istruzioni seguenti viene illustrato il processo per la connessione a SQL Server 2017SQL Server 2017 in esecuzione in Windows 8 o versione successiva.The following instructions describe the process for connecting to SQL Server 2017SQL Server 2017 running on Windows 8 or higher. Sono fornite delle lievi modifiche per le versioni precedenti di SQL Server o Windows.Slight adjustments for earlier versions of SQL Server or Windows are provided. 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 StudioSQL Server Management Studio .These instructions must be performed while logged in to Windows as a member of the local administrators group, and they assume that SQL Server Management StudioSQL Server Management Studio is installed on the computer.

  1. Nella pagina iniziale avviare SQL Server Management StudioSQL Server Management Studio.From the Start page, start SQL Server Management StudioSQL Server Management Studio. Selezionare Server registrati dal menu Visualizza.On the View menu, select Registered Servers. Se il server non è ancora registrato, fare clic con il pulsante destro del mouse su Gruppi di server locali, scegliere Attivitàe quindi Registra server locali.(If your server is not already registered, right-click Local Server Groups, point to Tasks, and then click Register Local Servers.)

  2. Nell'area Server registrati fare clic con il pulsante destro del mouse sul server e quindi scegliere Gestione configurazione SQL Server.In the Registered Servers area, right-click your server, and then click SQL Server Configuration Manager. Dovrebbe essere visualizzata la richiesta di autorizzazione all'esecuzione come amministratore. Successivamente, aprire il programma Gestione configurazione.This should ask for permission to run as administrator, and then open the Configuration Manager program.

  3. Chiudere Management StudioManagement Studio.Close Management StudioManagement Studio.

  4. Nel riquadro a sinistra di Gestione configurazione SQL ServerSQL Server selezionare Servizi di SQL Server.In SQL ServerSQL Server Configuration Manager, in the left pane, select SQL Server Services. Nel riquadro a destra individuare l'istanza di SQL ServerSQL Server.In the right-pane, find your instance of SQL ServerSQL Server. Nell'istanza predefinita di SQL ServerSQL Server è incluso (MSSQLSERVER) dopo il nome del computer.(The default instance of SQL ServerSQL Server includes (MSSQLSERVER) after the computer name. 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 ServerSQL Server e quindi scegliere Proprietà.Named instances appear in upper case with the same name that they have in Registered Servers.) Right-click the instance of SQL ServerSQL Server, and then click Properties.

  5. Nella casella Specificare un parametro di avvio della scheda Parametri di avvio digitare -m (ovvero un trattino seguito dalla lettera m minuscola) e quindi fare clic su Aggiungi.On the Startup Parameters tab, in the Specify a startup parameter box, type -m and then click Add. .(That's a dash then lower case letter m.)

    Nota

    In alcune versioni precedenti di SQL ServerSQL Server non è presente alcuna scheda Parametri di avvio .For some earlier versions of SQL ServerSQL Server there is no Startup Parameters tab. In questo caso, nella scheda Avanzate fare doppio clic su Parametri di avvio.In that case, on the Advanced tab, double-click Startup Parameters. I parametri vengono visualizzati in una finestra molto piccola.The parameters open up in a very small window. Fare attenzione a non modificare nessuno dei parametri esistenti.Be careful not to change any of the existing parameters. Al termine, aggiungere un nuovo parametro ;-m (ovvero un punto e virgola seguito da un trattino e una lettera m minuscola) e quindi fare clic su OK.At the very end, add a new parameter ;-m and then click OK. .(That's a semi-colon then a dash then lower case letter m.)

  6. Fare clic su OKe, dopo il messaggio di riavvio, fare clic con il pulsante destro del mouse sul nome del server e quindi scegliere Riavvia.Click OK, and after the message to restart, right-click your server name, and then click Restart.

  7. Dopo il riavvio di SQL ServerSQL Server , il server sarà in modalità utente singolo.After SQL ServerSQL Server has restarted your server will be in single-user mode. Accertarsi che SQL ServerSQL Server Agent non sia in esecuzione,Make sure that that SQL ServerSQL Server Agent is not running. altrimenti l'unica connessione presente non sarà più disponibile a causa del relativo utilizzo da parte di questo servizio.If started, it will take your only connection.

  8. Nella schermata iniziale di Windows 8 fare clic con il pulsante destro del mouse sull'icona di Management StudioManagement Studio.On the Windows 8 start screen, right-click the icon for Management StudioManagement Studio. Nella parte inferiore della schermata selezionare Esegui come amministratore.At the bottom of the screen, select Run as administrator. (le credenziali di amministratore verranno passate in SSMS).(This will pass your administrator credentials to SSMS.)

    Nota

    Per le versioni precedenti di Windows, l'opzione Esegui come amministratore viene visualizzata come sottomenu.For earlier versions of Windows, the Run as administrator option appears as a sub-menu.

    In alcune configurazioni, tramite SSMS si tenterà di stabilire diverse connessioni.In some configurations, SSMS will attempt to make several connections. Non sarà possibile stabilire più connessioni poiché SQL ServerSQL Server è in modalità utente singolo.Multiple connections will fail because SQL ServerSQL Server is in single-user mode. È possibile scegliere di effettuare una delle azioniYou can select one of the following actions to perform. riportate di seguito.Do one of the following.

    1. Effettuare la connessione con Esplora oggetti mediante l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore).Connect with Object Explorer using Windows Authentication (which includes your Administrator credentials). Espandere Sicurezza, Account di accessoe fare doppio clic sul proprio account di accesso.Expand Security, expand Logins, and double-click your own login. Nella pagina Ruoli server selezionare sysadminquindi fare clic su OK.On the Server Roles page, select sysadmin, and then click 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)Instead of connecting with Object Explorer, connect with a Query Window using Windows Authentication (which includes your Administrator credentials). (si tratta dell'unica modalità di connessione possibile se non è stato utilizzato Esplora oggetti). Eseguire codice come il seguente per aggiungere un nuovo account di accesso con autenticazione di Windows che fa parte del ruolo predefinito del server sysadmin.(You can only connect this way if you did not connect with Object Explorer.) Execute code such as the following to add a new Windows Authentication login that is a member of the sysadmin fixed server role. Nell'esempio seguente viene aggiunto un utente di dominio denominato CONTOSO\PatK.The following example adds a domain user named CONTOSO\PatK.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;  
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];  
      
    3. Se SQL ServerSQL 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).If your SQL ServerSQL Server is running in mixed authentication mode, connect with a Query Window using Windows Authentication (which includes your Administrator credentials). Eseguire codice come il seguente per creare un nuovo account di accesso con autenticazione di SQL ServerSQL Server che fa parte del ruolo predefinito del server sysadmin .Execute code such as the following to create a new SQL ServerSQL Server Authentication login that is a member of the sysadmin fixed server role.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';  
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;  
      
      Avviso

      Sostituire ************ con una password complessa.Replace ************ with a strong password.

    4. Se SQL ServerSQL Server è in esecuzione nella modalità di autenticazione mista e si vuole reimpostare la password dell'account sa , eseguire la connessione con una finestra Query usando l'autenticazione di Windows, che include le credenziali di amministratore.If your SQL ServerSQL Server is running in mixed authentication mode and you want to reset the password of the sa account, connect with a Query Window using Windows Authentication (which includes your Administrator credentials). Modificare la password dell'account sa con la sintassi seguente.Change the password of the sa account with the following syntax.

      ALTER LOGIN sa WITH PASSWORD = '************';  
      
      Avviso

      Sostituire ************ con una password complessa.Replace ************ with a strong password.

  9. Tramite i passaggi seguenti viene ora di nuovo impostata la modalità multiutente per SQL ServerSQL Server .The following steps now change SQL ServerSQL Server back to multi-user mode. Chiudere SSMS.Close SSMS.

  10. Nel riquadro a sinistra di Gestione configurazione SQL ServerSQL Server selezionare Servizi di SQL Server.In SQL ServerSQL Server Configuration Manager, in the left pane, select SQL Server Services. Nel riquadro a destra fare clic con il pulsante destro del mouse sull'istanza di SQL ServerSQL Servere quindi scegliere Proprietà.In the right-pane, right-click the instance of SQL ServerSQL Server, and then click Properties.

  11. Nella casella Parametri esistenti della scheda Parametri di avvio selezionare -m e quindi fare clic su Rimuovi.On the Startup Parameters tab, in the Existing parameters box, select -m and then click Remove.

    Nota

    In alcune versioni precedenti di SQL ServerSQL Server non è presente alcuna scheda Parametri di avvio .For some earlier versions of SQL ServerSQL Server there is no Startup Parameters tab. In questo caso, nella scheda Avanzate fare doppio clic su Parametri di avvio.In that case, on the Advanced tab, double-click Startup Parameters. I parametri vengono visualizzati in una finestra molto piccola.The parameters open up in a very small window. Rimuovere i caratteri ;-m aggiunti in precedenza e fare clic su OK.Remove the ;-m which you added earlier, and then click OK.

  12. Fare clic con il pulsante destro del mouse sul nome del server e quindi scegliere Riavvia.Right-click your server name, and then click Restart.

    A questo punto è possibile connettersi normalmente con uno degli account che fa parte del ruolo predefinito del server sysadmin .Now you should be able to connect normally with one of the accounts which is now a member of the sysadmin fixed server role.

Vedere ancheSee Also

Avvio di SQL Server in modalità utente singolo Start SQL Server in Single-User Mode
Opzioni di avvio del servizio del motore di databaseDatabase Engine Service Startup Options