Udostępnij za pośrednictwem


Ustawianie bazy danych na tryb pojedynczego użytkownika

Dotyczy:programu SQL Server

W tym artykule opisano sposób ustawiania bazy danych zdefiniowanej przez użytkownika na tryb pojedynczego użytkownika w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Tryb pojedynczego użytkownika określa, że tylko jeden użytkownik jednocześnie może uzyskać dostęp do bazy danych i jest zwykle używany do akcji konserwacji.

Ograniczenia

  • Jeśli inni użytkownicy są połączeni z bazą danych w momencie ustawienia bazy danych na tryb pojedynczego użytkownika, ich połączenia z bazą danych zostaną zamknięte bez ostrzeżenia.

  • Baza danych pozostaje w trybie pojedynczego użytkownika nawet po rozłączeniu użytkownika, który ustawił opcję. W tym momencie inny użytkownik, ale tylko jeden, może nawiązać połączenie z bazą danych.

Warunki wstępne

  • Przed ustawieniem bazy danych na SINGLE_USER sprawdź, czy opcja AUTO_UPDATE_STATISTICS_ASYNC jest ustawiona na OFF. Jeśli ta opcja jest ustawiona na ON, wątek aktualizujący statystyki nawiązuje połączenie z bazą danych i dostęp do bazy danych w trybie pojedynczego użytkownika nie będzie możliwy. Aby uzyskać więcej informacji, zobacz ALTER DATABASE SET Options (Transact-SQL).

Uprawnienia

Wymaga uprawnienia ALTER w bazie danych.

Korzystanie z programu SQL Server Management Studio

Aby ustawić bazę danych na tryb pojedynczego użytkownika:

  1. W Eksploratorze obiektów połącz się z wystąpieniem silnika bazy danych SQL Server, a następnie rozwiń wystąpienie.

  2. Kliknij prawym przyciskiem myszy bazę danych, której ustawienia chcesz zmienić, a następnie wybierz pozycję Właściwości.

  3. W oknie dialogowym właściwości bazy danych wybierz stronę opcje .

  4. W opcji Ogranicz dostęp wybierz pozycję single.

  5. Jeśli inni użytkownicy są połączeni z bazą danych, zostanie wyświetlony komunikat Otwieranie połączeń. Aby zmienić właściwość i zamknąć wszystkie inne połączenia, wybierz pozycję Tak.

Bazę danych można również ustawić tak, aby wiele lub ograniczony dostęp, korzystając z tej procedury. Aby uzyskać więcej informacji na temat opcji Ogranicz dostęp, zobacz Właściwości bazy danych (strona opcji).

Korzystanie z Transact-SQL

Aby ustawić bazę danych na tryb pojedynczego użytkownika:

  1. Połącz się z silnikiem bazy danych.

  2. Na pasku Standardowa wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. W tym przykładzie baza danych ustawia tryb SINGLE_USER w celu uzyskania wyłącznego dostępu. Następnie przykład ustawia stan bazy danych AdventureWorks2022 na READ_ONLY i zwraca dostęp do bazy danych wszystkim użytkownikom.

Ostrzeżenie

Aby szybko uzyskać wyłączny dostęp, przykładowy kod używa opcji zakończenia WITH ROLLBACK IMMEDIATE. Spowoduje to wycofanie wszystkich niekompletnych transakcji i natychmiastowe rozłączenie wszelkich innych połączeń z bazą danych AdventureWorks2022.

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