Modalità utente singolo per SQL Server

Si applica a:SQL Server

Questo articolo fornisce informazioni e procedure per avviare l'istanza di SQL Server in modalità utente singolo, che consente a un solo utente di connettersi all'istanza.

Avviare l'istanza in modalità utente singolo

L'avvio di SQL Server in modalità utente singolo consente a qualsiasi membro del gruppo Administrators locale del computer di connettersi all'istanza di SQL Server come membro del ruolo predefinito del server sysadmin. Per altre informazioni, vedere Connettersi a SQL Server se gli amministratori di sistema sono bloccati.

In alcuni casi potrebbe essere necessario avviare un'istanza di SQL Server in modalità utente singolo usando l'opzione di avvio-m. Potrebbe ad esempio essere necessario modificare le opzioni di configurazione del server o recuperare un database master o un altro database di sistema danneggiato. In entrambi i casi, è necessario avviare un'istanza di SQL Server in modalità utente singolo.

L'esempio seguente avvia l'istanza di SQL in modalità utente singolo e consente la connessione solo tramite Editor di query di SQL Server Management Studio.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

Per ripristinare un master database in Linux in modalità utente singolo, vedere Ripristinare il database master in Linux in modalità utente singolo.

Considerazioni generali

Quando si avvia un'istanza di SQL Server in modalità utente singolo, tenere presente che:

  • La connessione al server è consentita a un solo utente.

  • Il processo CHECKPOINT non viene eseguito. Per impostazione predefinita, tale processo viene eseguito automaticamente all'avvio.

Nota

Arrestare il servizio SQL Server Agent prima di connettersi a un'istanza di SQL Server in modalità utente singolo. In caso contrario, il servizio SQL Server Agent utilizzerà la connessione, bloccandola.

Quando si avvia un'istanza di SQL Server in modalità utente singolo, SQL Server Management Studio può connettersi a SQL Server. In Esplora oggetti in Management Studio potrebbe verificarsi un errore perché per alcune operazioni sono necessarie più connessioni. Per gestire SQL Server in modalità utente singolo, eseguire istruzioni Transact-SQL connettendosi tramite l'editor di query in Management Studio o Azure Data Studio oppure usare l’utilità sqlcmd.

Quando si utilizza l'opzione -m con SQLCMD o Management Studio, è possibile limitare le connessioni a un'applicazione client specifica.

Nota

In Linux SQLCMD deve essere scritto in maiuscolo come illustrato.

Ad esempio, -m"SQLCMD" limita 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 utilizza l'unica connessione disponibile. Per connettersi tramite l'editor di query in Management Studio, usare -m"Microsoft SQL Server Management Studio - Query".

Importante

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.

Considerazioni su Always On

Quando si usa la modalità server singolo per le istanze di SQL Server configurate come un'istanza del cluster di failover Always On, è necessario tenere presenti considerazioni aggiuntive oppure i database fanno parte di un gruppo di disponibilità Always On.

Gruppi di disponibilità

L'avvio del gruppo di disponibilità AlwaysOn e dei database nel gruppo viene ignorato quando SQL Server viene avviato in modalità utente singolo. Se è necessario risolvere i problemi relativi a un database che richiede l'avvio di SQL Server in modalità utente singolo e il database fa anche parte di un gruppo di disponibilità, è necessario rimuovere il database dal gruppo di disponibilità prima di avviare SQL Server in modalità utente singolo in modo che il database venga online.

Istanze del cluster di failover

Per un'installazione di SQL Server in un ambiente cluster, quando SQL Server viene avviato in modalità utente singolo, la dll della risorsa cluster utilizza tutta la connessione disponibile, bloccando pertanto qualsiasi altra connessione al server. Quando SQL Server si trova in questo stato, se si tenta di portare la risorsa SQL Server Agent online, potrebbe venire eseguito il failover della risorsa SQL a un nodo diverso se la risorsa è configurata in modo da influire sul gruppo.

Per aggirare il problema, attenersi alla procedura seguente:

  1. Rimuovere il parametro di avvio -m dalle proprietà avanzate di SQL Server.

  2. Prendere la risorsa SQL Server offline.

  3. Dal nodo del proprietario corrente di questo gruppo eseguire il comando seguente da a un prompt dei comandi:

    net start MSSQLSERVER /m
    
  4. Verificare tramite Amministrazione cluster o tramite la console di gestione del cluster di failover che la risorsa SQL Server sia ancora offline.

  5. Connettersi ora a SQL Server con il comando seguente ed eseguire l'operazione necessaria: SQLCMD -E -S<nomeserver>.

  6. Dopo aver completato l'operazione, chiudere il prompt dei comandi e riportare online SQL e le altre risorse tramite Amministrazione cluster.