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 naON
, 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:
W Eksploratorze obiektów połącz się z wystąpieniem silnika bazy danych SQL Server, a następnie rozwiń wystąpienie.
Kliknij prawym przyciskiem myszy bazę danych, której ustawienia chcesz zmienić, a następnie wybierz pozycję Właściwości.
W oknie dialogowym właściwości bazy danych wybierz stronę opcje .
W opcji Ogranicz dostęp wybierz pozycję single.
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:
Połącz się z silnikiem bazy danych.
Na pasku Standardowa wybierz pozycję Nowe zapytanie.
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 danychAdventureWorks2022
naREAD_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