Come reimpostare la password SA su Microsoft SQL Server?
In questo articolo, daremo un’occhiata a come reimpostare la password SA (amministratore di sistema) in Microsoft SQL Server 2019/2017/2014/2012 . Questa guida ti aiuterà a ripristinare l’accesso al database MSSQL se non riesci ad autenticarti usando l’account sa
(la password sa
è stata dimenticata/persa/l’account è stato disabilitato) o come utente Windows (se non ci sono utenti con autorizzazioni di amministratore di sistema MS SQL).
Per ripristinare l’accesso al database senza reinstallare completamente l’istanza MS SQL (e con la perdita del database master), è necessario avviare SQL Server in modalità utente singolo. In questa modalità, è possibile accedere a SQL Server con qualsiasi account con autorizzazioni di amministratore locale sul computer su cui è installato MS SQL Server. È quindi possibile reimpostare la password dell’account sa e / o concedere autorizzazioni amministrative a specifici account Windows.
Per eseguire MS SQL Server in modalità utente singolo, accedere all’host MSSQL in qualsiasi account con l’autorizzazione di amministratore locale in Windows.
- Arresta l’istanza di SQL Server (nel nostro esempio, il nome dell’istanza MSSQL è MSSQLSERVER) dal prompt dei comandi
net stop MSSQLSERVER
o utilizzando PowerShell:Get-Service MSSQLSERVER| Stop-Service
- Apri l’editor del registro di sistema (
regedit.exe
) e vai alla chiave del registro di sistema del servizio SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER; - Modifica il valore del parametro ImagePath aggiungendo l’opzione-m come argomento a sqlservr.exe. Ad esempio, impostare la seguente stringa di avvio:
"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m
- Avviare SQL Server:
net start MSSQLSERVER
- di SQL Server è in esecuzione in modalità utente singolo e permette ogni membro del gruppo Administrators locale (o il built-in di amministratore di Windows per connettersi all’istanza di SQL Server sysadmin privilegi;
- Aprire il SQL Server Management Studio (SSMS) e collegare il Motore di Database SQL Server utilizzando un account che sia membro del gruppo Administrators locale;
- Vai alla Sicurezza -> account di accesso e trovare l’utente sa. L’utente sa è disabilitato per impostazione predefinita;
- Apri le sue proprietà, vai alla scheda Generale e imposta una nuova password SA. Quindi abilitare questo account nella scheda Stato (Login -> Abilitato);
- Per consentire la connessione a MSSQL in account SQL locali (incluso sa), è necessario abilitare la modalità di autenticazione SQL Server e Windows nelle proprietà del server nella scheda Sicurezza. In caso contrario, quando ci si connette sotto l’account sa locale, verrà visualizzato un errore:
Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)
- Anche nella sezione Login, è possibile aggiungere gli utenti Windows richiesti (locale o dominio) e assegnargli un tole Sysadmin (nella scheda Ruoli server). In alternativa, è possibile aggiungere ruolo all’utente da sqlcmd cli:
EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
GO
- Resta da interrompere nuovamente il servizio MSSQL, restituire il valore iniziale del parametro del registro ImagePart rimuovendo l’opzione “-m” (
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER
); - Avviare il servizio SQL Server normalmente;
- È ora possibile connettersi a SQL Server nell’account sa in modalità Autenticazione SQL Server o nell’account utente Windows a cui sono stati concessi i privilegi di amministratore di sistema in SQL Server.
Inoltre, è possibile utilizzare il comando sqlcmd strumento linea per reimpostare la password di SA e concedere l’accesso a SQL Server:
- Avviare SQL Server in modalità singolo utente, come sopra descritto;
- Aprire il prompt dei comandi e connettersi all’istanza di SQL Server:
sqlcmd –S localhost
- Per modificare la password utente SA e si attiva, eseguire il seguente i comandi T-SQL:
ALTER LOGIN sa enable
GO
ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
GO - Per concedere autorizzazioni sysadmin in MSSQL per un account di Windows (utente locale in questo esempio), utilizzare i comandi:
CREATE LOGIN FROM WINDOWS
GO
ALTER SERVER ROLE sysadmin ADD MEMBER
GO
In questo articolo, abbiamo mostrato come ripristinare l’accesso a SQL Server in modalità utente singolo. In questa modalità, è possibile reimpostare la password sa (e altri utenti SQL) o concedere le autorizzazioni di amministrazione SQL agli account utente Windows. La modalità utente singolo può anche essere utilizzata per ripristinare il database temdb nel server MSSQL.