Febbraio 2, 2022

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).

La sa locale è un noto account amministrativo in SQL Server. Nella maggior parte dei casi è disabilitato, ma è possibile abilitarlo, impostare/reimpostare la password e ripristinare l’accesso al server 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.

Suggerimento. A partire da SQL Server 2008, il ruolo di amministratore di sistema in un server SQL non viene assegnato per impostazione predefinita al gruppo Amministratori locali di 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.

  1. 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 arresta MSSQLSERVER tramite cli
  2. 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;
  3. 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  sql server eseguito in modalità utente singolo tramite il registro di sistema
  4. Avviare SQL Server: net start MSSQLSERVER
  5. 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;
  6. 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; connettersi a SQL server in modalità singolo utente tramite SQL Server Management Studio
  7. Vai alla Sicurezza -> account di accesso e trovare l’utente sa. L’utente sa è disabilitato per impostazione predefinita;  L'utente sa è disabilitato in MS SQL Server per impostazione predefinita
  8. Apri le sue proprietà, vai alla scheda Generale e imposta una nuova password SA. Quindi abilitare questo account nella scheda Stato (Login -> Abilitato); SQL Server: Reimposta la password SA
  9. 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)

    abilita l'autenticazione in modalità autenticazione server e Windows su MSSQL

  10. 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

    concedere il ruolo di amministratore di sistema sql server all'utente Windows
  11. 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);
  12. Avviare il servizio SQL Server normalmente;
  13. È 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.
Suggerimento. È possibile avviare SQL Server in modalità utente singolo utilizzando SQL Server Configuration Manager. Per fare ciò, vai alla scheda Parametri di avvio nelle proprietà dell’istanza SQL richiesta e aggiungi l’opzione di avvio –m.

configurazione sql server aggiungi parametri di stratup

Inoltre, è possibile utilizzare il comando sqlcmd strumento linea per reimpostare la password di SA e concedere l’accesso a SQL Server:

  1. Avviare SQL Server in modalità singolo utente, come sopra descritto;
  2. Aprire il prompt dei comandi e connettersi all’istanza di SQL Server: sqlcmd –S localhost
  3. 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
  4. 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.