Freigeben über


Einzelbenutzermodus für SQL Server

Gilt für: SQL Server

Dieser Artikel enthält Informationen und Schritte zum Starten Ihrer SQL Server-Instanz im Einzelbenutzermodus, so dass nur ein Benutzer eine Verbindung mit der Instanz herstellen kann.

Starten Sie die Instanz im Einzelbenutzermodus

SQL Server im Einzelbenutzermodus zu starten, ermöglicht einem beliebigen Mitglied der lokalen Administratorengruppe des Computers, eine Verbindung mit der Instanz von SQL Server als Mitglied der festen Serverrolle sysadmin herzustellen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit SQL Server, wenn Systemadministratoren gesperrt sind.

Unter bestimmten Umständen müssen Sie eine Instanz von SQL Server mithilfe der Startoption -m starten. Das ist z. B. der Fall, wenn Sie Serverkonfigurationsoptionen ändern oder eine beschädigte master-Datenbank oder andere Systemdatenbanken wiederherstellen möchten. Beide Aktionen erfordern das Starten einer Instanz von SQL Server im Einzelbenutzermodus.

Das folgende Beispiel startet die SQL Server-Instanz im Einzelbenutzermodus und lässt Verbindungen nur über den Abfrage-Editor von SQL Server Management Studio zu.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

Nähere Informationen zum Wiederherstellen einer master Datenbank unter Linux im Einzelbenutzermodus finden Sie unter Wiederherstellen der Masterdatenbank unter Linux im Einzelbenutzermodus.

Allgemeine Hinweise

Beachten Sie beim Starten einer Instanz von SQL Server im Einzelbenutzermodus Folgendes:

  • Nur ein einziger Benutzer kann die Verbindung mit dem Server herstellen.

  • Der CHECKPOINT-Prozess wird nicht ausgeführt. Standardmäßig wird dieser Prozess beim Starten automatisch ausgeführt.

Hinweis

Beenden Sie den SQL Server -Agent-Dienst, bevor Sie eine Verbindung mit einer Instanz von SQL Server im Einzelbenutzermodus herstellen, da andernfalls der SQL Server -Agent-Dienst diese Verbindung verwendet und somit blockiert.

Wenn Sie eine Instanz von SQL Server im Einzelbenutzermodus starten, kann SQL Server Management Studio eine Verbindung mit SQL Serverherstellen. Der Objekt-Explorer in Management Studio erzeugt möglicherweise einen Fehler, da einige Vorgänge mehr als eine Verbindung erfordern. Um SQL Server im Einzelbenutzermodus zu verwalten, führen Sie Transact-SQL-Anweisungen aus, indem Sie sich über den Abfrage-Editor in Management Studio oder Azure Data Studio verbinden, oder verwenden Sie das Dienstprogramm sqlcmd.

Wenn Sie die Option -m mit SQLCMD oder Management Studio verwenden, können Sie die Verbindungen auf eine angegebene Clientanwendung beschränken.

Hinweis

Unter Linux muss SQLCMD großgeschrieben werden.

-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. Für eine Verbindungsherstellung über den Abfrage-Editor in Management Studio müssen Sie -m"Microsoft SQL Server Management Studio - Query" verwenden.

Wichtig

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

Überlegungen im Zusammenhang mit AlwaysOn

Es müssen zusätzliche Gesichtpunkte berücksichtigt werden bei der Verwendung des Einzelservermodus für SQL Server-Instanzen, die als Always On-Failoverclusterinstanz (Always On Failover Cluster Instance, FCI) konfiguriert sind, oder wenn Ihre Datenbanken Teil einer Always On-Verfügbarkeitsgruppe (AG) sind.

Verfügbarkeitsgruppen

Der Startup der AlwaysOn-Verfügbarkeitsgruppe und -Datenbanken in der Gruppe wird übersprungen, wenn SQL Server im Einzelbenutzermodus gestartet wird. Wenn Sie Probleme mit einer Datenbank behandeln müssen, die erfordert, dass SQL Server im Einzelbenutzermodus gestartet wird, und die Datenbank außerdem Teil einer Verfügbarkeitsgruppe ist, müssen Sie die Datenbank aus der Verfügbarkeitsgruppe entfernen, bevor Sie SQL Server im Einzelbenutzermodus starten, damit die Datenbank online geht.

Failoverclusterinstanzen

Für die SQL Server -Installation in einer Clusterumgebung verwendet die Clusterressourcen-DLL, wenn SQL Server im Einzelbenutzermodus gestartet wird, die verfügbare Verbindung, wodurch alle anderen Verbindungen mit dem Server blockiert werden. Wenn SQL Server diesen Status aufweist und Sie versuchen, die SQL Server-Agent-Ressource online zu schalten, wird möglicherweise ein Failover der SQL-Ressource auf einen anderen Knoten ausgeführt, falls die Ressource so konfiguriert ist, dass sie sich auf die Gruppe auswirkt.

Gehen Sie folgendermaßen vor, um das Problem zu verhindern:

  1. Entfernen Sie den -m-Startparameter aus den erweiterten SQL Server-Eigenschaften.

  2. Schalten Sie die SQL Server -Ressource offline.

  3. Geben Sie aus dem aktuellen Benutzerknoten dieser Gruppe den folgenden Befehl an der Eingabeaufforderung aus:

    net start MSSQLSERVER /m
    
  4. Überprüfen Sie in Konsole der Clusterverwaltung oder der Failoverclusterverwaltung, dass die SQL Server -Ressource immer noch offline ist.

  5. Verbinden Sie sich nun mit dem folgenden Befehl mit dem SQL Server und führen Sie die notwendige Operation durch: SQLCMD -E -S <servername>.

  6. Schließen Sie die Eingabeaufforderung, nachdem der Vorgang abgeschlossen wurde, und schalten Sie die SQL-Ressource sowie andere Ressourcen über die Clusterverwaltung wieder online.