Festlegen des Einzelbenutzermodus für eine Datenbank

Gilt für: SQL Server

In diesem Thema wird beschrieben, wie Sie mit SQL Server Management Studio oder Transact-SQL eine benutzerdefinierte Datenbank in SQL Server auf Einzelbenutzermodus setzen. Der Einzelbenutzermodus gibt an, dass jeweils nur ein Benutzer auf die Datenbank zugreifen kann. Er wird im Allgemeinen für Wartungsaktionen verwendet.

Begrenzungen

  • Wenn zu dem Zeitpunkt, an dem Sie den Einzelbenutzermodus für die Datenbank festlegen, andere Benutzer mit der Datenbank verbunden sind, werden ihre Verbindungen mit der Datenbank ohne Warnung geschlossen.

  • Die Datenbank bleibt auch dann im Einzelbenutzermodus, wenn der*die Benutzer*in, der*die die Option festgelegt hat, nicht mehr verbunden ist. Dadurch kann ein anderer Benutzer (aber nur einer) eine Verbindung mit der Datenbank herstellen.

Voraussetzungen

  • Bevor Sie die Datenbank auf SINGLE_USER festlegen, müssen Sie überprüfen, ob die AUTO_UPDATE_STATISTICS_ASYNC-Option auf OFF festgelegt ist. Wenn diese Option auf ON festgelegt ist, stellt der Hintergrundthread, der zum Aktualisieren von Statistiken verwendet wird, eine Verbindung mit der Datenbank her, und Sie können im Einzelbenutzermodus nicht auf die Datenbank zugreifen. Weitere Informationen finden Sie unter ALTER DATABASE SET-Optionen (Transact-SQL).

Berechtigungen

Erfordert die ALTER-Berechtigung für die Datenbank.

Verwenden von SQL Server Management Studio

So legen Sie den Einzelbenutzermodus für eine Datenbank fest:

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server-Datenbank-Engineher, und erweitern Sie dann diese Instanz.

  2. Klicken Sie mit der rechten Maustaste auf die zu ändernde Datenbank, und wählen Sie dann Eigenschaften aus.

  3. Wählen Sie im Dialogfeld Datenbankeigenschaften die Seite Optionen aus.

  4. Wählen Sie unter der Option Zugriff beschränken den Eintrag Singleaus.

  5. Wenn andere Benutzer mit der Datenbank verbunden sind, wird die Meldung Geöffnete Verbindungen angezeigt. Wählen Sie Ja aus, um die Eigenschaft zu ändern und alle anderen Verbindungen zu schließen.

Mit dieser Prozedur können Sie für die Datenbank auch einen Mehrfachzugriff oder einen eingeschränkten Zugriff festlegen. Weitere Informationen zu den Optionen von „Zugriff beschränken“ finden Sie unter Datenbankeigenschaften (Seite Optionen).

Verwenden von Transact-SQL

So legen Sie den Einzelbenutzermodus für eine Datenbank fest:

  1. Stellen Sie eine Verbindung mit dem Datenbank-Engineher.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen. In diesem Beispiel wird die Datenbank auf den SINGLE_USER -Modus festgelegt, um exklusiven Zugriff zu erhalten. Anschließend wird in dem Beispiel der Status der AdventureWorks2022-Datenbank auf READ_ONLY festgelegt und der Zugriff auf die Datenbank an alle Benutzer zurückgegeben.

Warnung

Um schnell exklusiven Zugriff zu erhalten, verwendet das Codebeispiel die Beendigungsoption WITH ROLLBACK IMMEDIATE. Dies führt dazu, dass für alle unvollständigen Transaktionen ein Rollback ausgeführt wird und alle anderen Verbindungen zur AdventureWorks2022 -Datenbank sofort getrennt werden.

USE master;
GO
ALTER DATABASE AdventureWorks2022
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2022
SET READ_ONLY;
GO
ALTER DATABASE AdventureWorks2022
SET MULTI_USER;
GO