Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wiederherstellen des Zugriffs auf die SQL Server-Instanz ohne Neustart

​​

Ab Microsoft SQL Server 2008 wird standardmäßig die Gruppe der lokalen Administratoren während der Installation nicht mehr zu den SQL Server-Administratoren hinzugefügt, dies kann nur manuell erfolgen.

Wenn die Administratorgruppe während oder nach der Installation nicht hinzugefügt wurde, kann es daher vorkommen, dass der Administratorzugriff auf SQL Server verloren geht. Dies kann passieren, wenn der Benutzer, unter dem die Installation durchgeführt wurde, unbekannt ist oder das Kennwort des gleichen Kontos verloren gegangen ist, oder wenn der vorherige Datenbankadministrator gekündigt hat und sein Windows-Konto als einziges mit Administratorrechten für SQL Server gelöscht wurde .

In der Regel wird in diesem Fall der reguläre Mechanismus mit einem Einzelbenutzer-SQL-Server-Neustart verwendet. Dieser Ansatz erfordert jedoch eine gewisse Ausfallzeit, und in einigen Systemen ist dies nicht akzeptabel.

Es gibt eine sehr schmerzlose Möglichkeit, dieses Problem ohne Ausfallzeiten zu lösen, wenn bestimmte Bedingungen erfüllt sind. Viele haben die Dienstprogramme von Mark Russinovich – Windows Sysinternals – gehört und verwendet. Dieses Set enthält das PsExec-Dienstprogramm, mit dem Sie einen Prozess auf einem lokalen oder entfernten Computer starten können.

Einer der Vorteile dieses Dienstprogramms ist die Fähigkeit, Prozesse im Namen eines NT AUTHORITY\SYSTEM-Kontos auszuführen , die – im Gegensatz zu „normalen“ Administratorkonten – standardmäßig Zugriff auf SQL Server hat.

Damit diese Methode funktioniert, muss für SQL Server die Windows-Authentifizierung aktiviert sein und als NT-Konto AUTHORITY\SYSTEM ausgeführt werden, andernfalls hat das NT-Konto AUTHORITY\SYSTEM nur öffentliche Rechte und keinen Systemadministrator.

Wiederherstellung des Administratorzugriffs auf SQL Server vorbereiten

1. Stellen Sie sicher, dass der SQL Server-Dienst im Auftrag Ihres NT-Kontos AUTHORITY\SYSTEM ausgeführt wird.
2. Laden Sie die aktuelle Version von SQL Server Management Studio (SSMS) herunter und installieren Sie sie beispielsweise hier auf Ihrem SQL-Server
3. Laden Sie das Archiv auf den SQL-Server herunter und entpacken Sie die aktuelle Version des PsTools-Dienstprogrammsatzes (PsExec ist darin enthalten), z. B. PSTools.

Ergänzungen zu SQL Server Administrator

1. Führen Sie die Befehlszeile mit erhöhten Rechten auf dem SQL-Server aus (Umschalttaste + Rechtsklick, „Als Administrator ausführen“) und navigieren Sie zu dem Ordner, in dem das PsExec-Dienstprogramm entpackt ist.
2. Führen Sie den folgenden Befehl aus und korrigieren Sie Ihren tatsächlichen Pfad zu Management Studio:

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

Einstellungen:

  • -i – gibt an, dass der Prozess im interaktiven Modus gestartet werden muss
  • -s – gibt an, dass Sie den Prozess im Namen Ihres NT-Systemkontos AUTHORITY\SYSTEM ausführen müssen.
    Sie erhalten ungefähr Folgendes (beim ersten Start sehen Sie ein Fenster mit der Lizenzvereinbarung):

und das SSMS wird gestartet.

3 Wenn Sie auf Verbinden klicken, können Sie eine Verbindung herstellen und die Liste der Objekte auf dem Server anzeigen.

4. Gehen Sie jetzt zu Sicherheit> Anmeldungen und fügen Sie Ihr Konto als Systemadministrator hinzu und aktualisieren Sie dasselbe Passwort. Tun Sie im Allgemeinen alles Notwendige, um Ihre Instanz verwaltbar zu machen.

Melden Sie sich an und fügen Sie Ihr Konto als Systemadministrator hinzu und aktualisieren Sie das sa-Passwort. Tun Sie im Allgemeinen alles Notwendige, um Ihre Instanz verwaltbar zu machen

Diese Methode weist zwar eine Reihe von Einschränkungen auf, ermöglicht Ihnen jedoch, die SQL-Serververwaltung wiederherzustellen, ohne den Datenbankserver zu stoppen.

SQL Server-Instanz verbinden, ohne Management Studio zu verwenden – mit SqlCmd