Connettersi a SQL Server se gli amministratori di sistema sono bloccati
In questo argomento viene descritto come ottenere nuovamente l'accesso al motore di database di SQL Server come amministratore di sistema. Un amministratore di sistema può perdere l'accesso a un'istanza di SQL Server a causa di 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 modo in cui è possibile riottenere l'accesso consiste nel reinstallare SQL Server e collegare tutti i database alla nuova istanza. Questa soluzione richiede molto tempo. Per recuperare gli account di accesso, inoltre, può 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 possono risultare ancora bloccati.
Risoluzione
Avviare l'istanza di SQL Server in modalità utente singolo usando le opzioni -m o -f. Qualsiasi membro del gruppo Administrators locale del computer può 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 prima di tutto il servizio SQL Server Agent. In caso contrario, SQL Server Agent potrebbe connettersi per primo e impedire la connessione come secondo utente.
Quando si usa l'opzione -m con sqlcmd o SQL Server Management Studio, è possibile limitare le connessioni a un'applicazione client specificata. Ad esempio, -m"sqlcmd" limita le connessioni a una singola connessione e tale connessione deve identificarsi come programma client sqlcmd . Usare questa opzione quando si avvia SQL Server in modalità utente singolo e un'applicazione client sconosciuta usa l'unica connessione disponibile. Per connettersi tramite il Editor di query in Management Studio, usare -m"Microsoft SQL Server Management Studio - Query".
Importante
Non utilizzare tale opzione come caratteristica 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 Configurare le opzioni di avvio del server (Gestione configurazione SQL Server).For step-by-step instructions about how to start SQL Server in single-user mode, see Configure Server Startup Options (Gestione configurazione SQL Server).
Istruzioni dettagliate
Le istruzioni seguenti descrivono il processo di connessione a SQL Server 2014 in esecuzione in Windows 8 o versione successiva. Sono fornite delle lievi modifiche per le versioni precedenti di SQL Server o Windows. Queste istruzioni devono essere eseguite durante l'accesso a Windows come membro del gruppo administrators locale e presuppongono che SQL Server Management Studio sia installato nel computer.
Nella pagina iniziale iniziare SQL Server Management Studio. Selezionare Server registrati dal menu Visualizza. 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.
Nell'area Server registrati fare clic con il pulsante destro del mouse sul server e quindi scegliere Gestione configurazione SQL Server. Dovrebbe essere visualizzata la richiesta di autorizzazione all'esecuzione come amministratore. Successivamente, aprire il programma Gestione configurazione.
Chiudere Management Studio.
Nel riquadro sinistro di Gestione configurazione SQL Server selezionare Servizi di SQL Server. Nel riquadro destro trovare 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 scegliere Proprietà.
Nella scheda Parametri di avvio digitare nella casella Specificare un parametro di
-m
avvio e quindi fare clic suAdd
. .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 suOK
.Fare clic su
OK
e dopo il messaggio da riavviare, fare clic con il pulsante destro del mouse sul nome del server e quindi scegliere Riavvia.Dopo SQL Server il riavvio del 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.
Nella schermata start di Windows 8 fare clic con il pulsante destro del mouse sull'icona per 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 perché SQL Server è in modalità utente singolo. È possibile scegliere di effettuare una delle azioni riportate di seguito.
Effettuare la connessione con Esplora oggetti mediante l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore). Espandere Sicurezza, Account di accessoe fare doppio clic sul proprio account di accesso. Nella pagina Ruoli server selezionare
sysadmin
e quindi fare clic suOK
.Anziché effettuare la connessione con Esplora oggetti, utilizzare una finestra Query tramite l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore) È possibile connettersi in questo modo solo se non si è connessi con Esplora oggetti. Eseguire codice come il seguente per aggiungere un nuovo account di accesso con autenticazione di Windows membro del ruolo predefinito del
sysadmin
server. Nell'esempio seguente viene aggiunto un utente di dominio denominatoCONTOSO\PatK
.CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];
Se SQL Server è in esecuzione nella modalità di autenticazione mista, effettuare la connessione con una finestra Query usando l'autenticazione di Windows (in cui sono incluse le credenziali di amministratore). Eseguire codice come il seguente per creare un nuovo account di accesso di autenticazione SQL Server membro del ruolo predefinito del
sysadmin
server.CREATE LOGIN TempLogin WITH PASSWORD = '************'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
Avviso
Sostituire ************ con una password complessa.
Se il SQL Server è in esecuzione in modalità di autenticazione mista e si vuole reimpostare la password dell'account
sa
, connettersi a una finestra di query usando l'autenticazione di Windows (che include le credenziali di amministratore). Modificare la password dell'accountsa
con la sintassi seguente.ALTER LOGIN sa WITH PASSWORD = '************';
Avviso
Sostituire ************ con una password complessa.
I passaggi seguenti ora cambiano SQL Server in modalità multiutente. Chiudere SSMS.
Nel riquadro sinistro di Gestione configurazione SQL Server selezionare Servizi di SQL Server. Nel riquadro destro fare clic con il pulsante destro del mouse sull'istanza di SQL Server, quindi scegliere Proprietà.
Nella casella Parametriesistenti della scheda Parametri di avvio selezionare
-m
e quindi fare clic suRemove
.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 l'oggetto
;-m
aggiunto in precedenza e quindi fare clic suOK
.Fare clic con il pulsante destro del mouse sul nome del server e quindi scegliere Riavvia.
A questo momento dovrebbe essere possibile connettersi normalmente con uno degli account che ora è membro del ruolo predefinito del sysadmin
server.
Vedere anche
Avvio di SQL Server in modalità utente singolo
Opzioni di avvio del servizio del motore di database