Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ripristino dell'accesso all'istanza di SQL Server senza riavviare

A partire da Microsoft SQL Server 2008, per impostazione predefinita, il gruppo di amministratori locali non viene più aggiunto agli amministratori di SQL Server durante l'installazione, questa operazione può essere eseguita solo manualmente.

Di conseguenza, se il gruppo dell'amministratore non è stato aggiunto durante o dopo l'installazione, si verificano situazioni in cui l'accesso amministrativo a SQL Server viene perso. Ciò può accadere quando l'utente da cui è stata eseguita l'installazione è sconosciuto o la password dello stesso account viene persa, oppure quando l'amministratore del database precedente si è chiuso e il suo account Windows, essendo l'unico con diritti di amministratore per SQL Server, è stato eliminato .

Di solito, in questo caso, viene utilizzato il normale meccanismo con un riavvio di SQL Server per utente singolo. Tuttavia, questo approccio richiede alcuni tempi di inattività e in alcuni sistemi ciò è inaccettabile.

Esiste un modo molto indolore per risolvere questo problema senza tempi di inattività se vengono soddisfatte determinate condizioni. Molti hanno ascoltato e utilizzato le utilità di Mark Russinovich:Windows Sysinternals. Questo set contiene l'utilità PsExec, che consente di avviare un processo su una macchina locale o remota.

Uno dei vantaggi di questa utilità è la possibilità di eseguire processi per conto di un account NT AUTHORITY\SYSTEM , che, a differenza dei "normali" account amministratore, ha accesso a SQL Server per impostazione predefinita.

Affinché questo metodo funzioni, SQL Server deve avere l'autenticazione di Windows abilitata ed essere eseguito come un account NT AUTHORITY\SYSTEM, altrimenti, l'account NT AUTHORITY\SYSTEM avrà solo diritti pubblici, non un amministratore di sistema.

Preparazione per ripristinare l'accesso amministrativo a SQL Server

1. Assicurati che il servizio SQL Server sia in esecuzione per conto del tuo account NT AUTHORITY\SYSTEM.
2. Scaricare e installare la versione corrente di SQL Server Management Studio (SSMS) sul server SQL, ad esempio qui
3. Scaricare e decomprimere l'archivio sul server SQL con la versione corrente del set di utilità PsTools (in esso è incluso PsExec), ad esempio PSTools.

Aggiunte all'amministratore di SQL Server

1. Eseguire la riga di comando con diritti elevati sul server SQL (Maiusc + clic destro, "Esegui come amministratore") e passare alla cartella in cui è stato decompresso l'utilità PsExec.
2. Eseguire il comando seguente, correggendo il percorso effettivo di Management Studio:

PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"

Impostazioni:

  • -i – indica che è necessario avviare il processo in modalità interattiva
  • -s – indica che è necessario eseguire il processo per conto del proprio account di sistema NT AUTHORITY\SYSTEM.
    Otterrai approssimativamente quanto segue (al primo avvio vedrai una finestra con il contratto di licenza):

e l'SSMS inizierà.

3 Facendo clic su Connetti potrai connetterti e vedere l'elenco degli oggetti sul server.

4. Ora vai su Sicurezza> Accessi e aggiungi il tuo account come amministratore di sistema e aggiorna la stessa password, in generale, fai tutto il necessario per rendere gestibile la tua istanza.

Accedi e aggiungi il tuo account come amministratore di sistema e aggiorna la password sa, in generale, fai tutto il necessario per rendere gestibile la tua istanza” width=”300″ height=”160″ title=””>

Questo metodo, sebbene abbia una serie di limitazioni, consente di ripristinare la gestione del server SQL senza arrestare il server del database.

Collega l'istanza di SQL Server senza utilizzare Management Studio, utilizzando SqlCmd