Herstellen einer Verbindung mit SQL Server, wenn Systemadministratoren gesperrt sind

In diesem Thema wird beschrieben, wie Sie erneut Zugriff auf SQL Server Database Engine (Datenbankmodul) als Systemadministrator erhalten. Ein Systemadministrator kann aus folgenden Gründen den Zugriff auf eine Instanz von SQL Server verlieren:

  • Alle Anmeldenamen, die Mitglied der festen Serverrolle sysadmin sind, wurden versehentlich entfernt.

  • Alle Windows-Gruppen, die Mitglied der festen Serverrolle sysadmin sind, wurden versehentlich entfernt.

  • Die Anmeldenamen, die Mitglied der festen Serverrolle sysadmin sind, gehören zu Mitarbeitern, die das Unternehmen verlassen haben oder nicht verfügbar sind.

  • Das sa-Konto wurde deaktiviert, oder das Kennwort ist unbekannt.

Eine Methode zum Wiedererlangen des Zugriffs ist die Neuinstallation von SQL Server und das Anfügen aller Datenbanken an die neue Instanz. Diese Lösung ist zeitaufwendig. Außerdem kann es zum Wiederherstellen der Anmeldenamen erforderlich sein, die master-Datenbank aus einer Sicherung wiederherzustellen. Je nach Datum der Sicherung der master-Datenbank sind möglicherweise nicht alle Informationen enthalten. Wenn die Sicherung der master-Datenbank aktuell ist, sind möglicherweise die gleichen Anmeldenamen wie in der vorherigen Instanz enthalten und die Administratoren sind immer noch gesperrt.

Lösung

Starten Sie die Instanz von SQL Server im Einzelbenutzermodus mithilfe der -m-Option oder der -f-Option. Ein beliebiges Mitglied der lokalen Administratorengruppe des Computers kann dann als Mitglied der festen Serverrolle sysadmin eine Verbindung mit der Instanz von SQL Server herstellen.

HinweisHinweis

Wenn Sie eine Instanz von SQL Server im Einzelbenutzermodus starten, müssen Sie zunächst den SQL Server-Agent-Dienst beenden. Andernfalls stellt der SQL Server-Agent möglicherweise zuerst eine Verbindung her und verhindert, dass Sie als zweiter Benutzer eine Verbindung herstellen können.

Wenn Sie die Option -m mit sqlcmd oder SQL Server Management Studio verwenden, können Sie die Verbindungen auf eine angegebene Clientanwendung beschränken. -m"sqlcmd" beschränkt Verbindungen z. B. auf eine einzelne Verbindung, und diese Verbindung muss sich als sqlcmd-Clientprogramm identifizieren. Verwenden Sie diese Option, wenn Sie SQL Server im Einzelbenutzermodus starten und eine unbekannte Clientanwendung die einzige verfügbare Verbindung belegt. Um über den Abfrage-Editor von Management Studio eine Verbindung herzustellen, verwenden Sie -m"Microsoft SQL Server Management Studio - Query".

SicherheitshinweisSicherheitshinweis

Verwenden Sie diese Option nicht als Sicherheitsfunktion. Die Clientanwendung gibt den Clientanwendungsnamen an und kann als Teil der Verbindungszeichenfolge einen falschen Namen angeben.

Schritt-für-Schritt-Anweisungen zum Starten von SQL Server im Einzelbenutzermodus finden Sie unter Konfigurieren von Serverstartoptionen (SQL Server-Konfigurations-Manager).

Schritt-für-Schritt-Anweisungen

Im Folgenden wird beschrieben, wie eine Verbindung mit SQL Server 2012 unter Windows 8 hergestellt wird. Auf geringfügige Abweichungen bei früheren Versionen von SQL Server oder Windows wird ggf. hingewiesen. Diese Anweisungen müssen ausgeführt werden, während Sie als Mitglied der lokalen Administratorgruppe bei Windows angemeldet sind. Außerdem wird davon ausgegangen, dass SQL Server Management Studio auf dem Computer installiert ist.

  1. Starten Sie auf der Startseite SQL Server Management Studio. Wählen Sie im Menü Ansicht die Option Registrierte Server aus. (Wenn Ihr Server noch nicht registriert ist, klicken Sie mit der rechten Maustaste auf Lokale Servergruppen, zeigen auf Tasks und klicken dann auf Lokale Server registrieren.)

  2. Klicken Sie im Bereich Registrierte Server mit der rechten Maustaste auf den Server, und klicken Sie dann auf SQL Server-Konfigurations-Manager. Eine Berechtigung zum Ausführen als Administrator sollte angefordert und der Konfigurations-Manager geöffnet werden.

  3. Schließen Sie Management Studio.

  4. Wählen Sie im linken Bereich des SQL Server-Konfigurations-Managers die Option SQL Server-Dienste aus. Suchen Sie im rechten Bereich Ihre SQL Server-Instanz. (Bei der Standardinstanz von SQL Server ist (MSSQLSERVER) nach dem Computernamen angegeben. Benannte Instanzen werden in Großbuchstaben mit demselben Namen wie unter Registrierte Server angezeigt.) Klicken Sie mit der rechten Maustaste auf die SQL Server-Instanz, und klicken Sie dann auf Eigenschaften.

  5. Geben Sie auf der Registerkarte Startparameter im Feld Startparameter angeben -m ein, und klicken Sie dann auf Add. (Der Parameter entspricht einem Bindestrich und dem Kleinbuchstaben m.)

    HinweisHinweis

    Bei einigen früheren SQL Server-Versionen gibt es keine Registerkarte Startparameter. Doppelklicken Sie in diesem Fall auf der Registerkarte Erweitert auf Startparameter. Die Parameter werden in einem sehr kleinen Fenster geöffnet. Achten Sie darauf, die vorhandenen Parameter nicht zu ändern. Fügen Sie ganz unten den neuen Parameter ;-m hinzu, und klicken Sie auf OK. (Der Parameter entspricht einem Semikolon, einem Bindestrich und dem Kleinbuchstaben m.)

  6. Klicken Sie auf OK, und klicken Sie nach Ausgabe der Neustartmeldung mit der rechten Maustaste auf den Servernamen, und klicken Sie dann auf Neu starten.

  7. Nachdem SQL Server neu gestartet wurde, befindet sich der Server im Einzelbenutzermodus. Stellen Sie sicher, dass der SQL Server-Agent nicht ausgeführt wird, da er andernfalls Ihre einzige Verbindung belegt.

  8. Klicken Sie im Startbildschirm von Windows 8 mit der rechten Maustaste auf das Symbol für Management Studio. Wählen Sie am unteren Bildschirmrand Als Administrator ausführen aus. (Dadurch werden Ihre Administratoranmeldeinformationen an SSMS übergeben.)

    HinweisHinweis

    In früheren Windows-Versionen wird die Option Als Administrator ausführen als Untermenü angezeigt.

    In einigen Konfigurationen versucht SSMS, mehrere Verbindungen herzustellen. Mehrere Verbindungen verursachen einen Fehler, da SQL Server im Einzelbenutzermodus ausgeführt wird. Sie können zwischen folgenden Aktionen wählen. Führen Sie einen der folgenden Schritte aus:

    1. Stellen Sie über den Objekt-Explorer unter Verwendung der Windows-Authentifizierung (die Ihre Administratoranmeldeinformationen enthält) eine Verbindung her. Erweitern Sie Sicherheit sowie Anmeldungen, und doppelklicken Sie auf Ihre eigene Anmeldung. Wählen Sie auf der Seite Serverrollen die Option sysadmin aus, und klicken Sie dann auf OK.

    2. Anstatt über den Objekt-Explorer stellen Sie in einem Abfragefenster unter Verwendung der Windows-Authentifizierung (die Ihre Administratoranmeldeinformationen enthält) eine Verbindung her. (Diese Art der Verbindung wird nur unterstützt, wenn sie nicht über den Objekt-Explorer hergestellt wurde.) Führen Sie Code (wie im folgenden Beispiel) aus, um eine neue Windows-authentifizierte Anmeldung hinzuzufügen, die Mitglied der festen Serverrolle sysadmin ist. Im folgenden Beispiel wird ein Domänenbenutzer mit dem Namen CONTOSO\PatK hinzugefügt.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];
      
    3. Wenn SQL Server im gemischten Authentifizierungsmodus ausgeführt wird, stellen Sie eine Verbindung in einem Abfragefenster unter Verwendung der Windows-Authentifizierung her (die Ihre Administratoranmeldeinformationen enthält). Führen Sie Code (wie im folgenden Beispiel) aus, um eine neue SQL Server-authentifizierte Anmeldung zu erstellen, die Mitglied der festen Serverrolle sysadmin ist.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
      
      VorsichtshinweisVorsicht

      Ersetzen Sie ************ durch ein sicheres Kennwort.

    4. Wenn SQL Server im gemischten Authentifizierungsmodus ausgeführt wird und Sie das Kennwort des sa-Kontos zurücksetzen möchten, stellen Sie in einem Abfragefenster eine Verbindung unter Verwendung der Windows-Authentifizierung her (die Ihre Administratoranmeldeinformationen enthält). Ändern Sie das Kennwort des sa-Kontos mit folgender Syntax.

      ALTER LOGIN sa WITH PASSWORD = '************';
      
      VorsichtshinweisVorsicht

      Ersetzen Sie ************ durch ein sicheres Kennwort.

  9. Mit den folgenden Schritten wird SQL Server jetzt wieder in den Mehrbenutzermodus zurückversetzt. Schließen Sie SSMS.

  10. Wählen Sie im linken Bereich des SQL Server-Konfigurations-Managers die Option SQL Server-Dienste aus. Klicken Sie im rechten Bereich mit der rechten Maustaste auf die Instanz von SQL Server, und klicken Sie dann auf Eigenschaften.

  11. Wählen Sie auf der Registerkarte Startparameter im Feld Vorhandene Parameter den Parameter -m aus, und klicken Sie auf Remove.

    HinweisHinweis

    Bei einigen früheren SQL Server-Versionen gibt es keine Registerkarte Startparameter. Doppelklicken Sie in diesem Fall auf der Registerkarte Erweitert auf Startparameter. Die Parameter werden in einem sehr kleinen Fenster geöffnet. Entfernen Sie den zuvor hinzugefügten Parameter ;-m, und klicken Sie dann auf OK.

  12. Klicken Sie mit der rechten Maustaste auf den Servernamen, und klicken Sie dann auf Neu starten.

Nun sollten Sie in der Lage sein, mit einem der Konten, das jetzt Mitglied der festen Serverrolle sysadmin ist, auf normale Weise eine Verbindung herzustellen.

Siehe auch

Konzepte

Starten von SQL Server im Einzelbenutzermodus

Startoptionen für den Datenbankmoduldienst