Установка однопользовательского режима базы данных

Область применения: SQL Server

В этой статье описывается, как настроить определяемую пользователем базу данных в однопользовательском режиме в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Однопользовательский режим указывает, что одновременный доступ к базе данных получает только один пользователь. Это в основном используется для операций обслуживания.

Ограничения

  • Если в процессе установки однопользовательского режима к базе данных подключены другие пользователи, то их подключения к базе данных будут закрыты без предупреждения.

  • База данных остается в однопользовательском режиме даже после отключения параметра. В этот момент к базе данных могут подключаться и другие пользователи, но одновременно может быть подключен только один.

Необходимые компоненты

  • Прежде чем задать для базы данных значение SINGLE_USER, убедитесь, что для параметра AUTO_UPDATE_STATISTICS_ASYNC задано значение OFF. Если этот параметр задан ON, фоновый поток, используемый для обновления статистики, принимает соединение с базой данных, и вы не сможете получить доступ к базе данных в однопользовательском режиме. Дополнительные сведения см. в статье Параметры ALTER DATABASE SET (Transact-SQL).

Разрешения

Необходимо разрешение ALTER в базе данных.

Использование SQL Server Management Studio

Чтобы установить однопользовательский режим для базы данных, выполните следующие действия:

  1. В обозреватель объектов подключитесь к экземпляру ядро СУБД SQL Server, а затем разверните этот экземпляр.

  2. Щелкните правой кнопкой мыши базу данных, которую нужно изменить, и выберите пункт Свойства.

  3. В диалоговом окне Свойства базы данных выберите страницу Параметры.

  4. Для параметра Ограничение доступа выберите Один.

  5. Если к базе данных подключены другие пользователи, то появится сообщение Открытые соединения . Чтобы изменить свойство и закрыть все остальные подключения, нажмите кнопку Да.

С помощью этой процедуры можно также установить режим одновременного или ограниченного доступа к базе данных. Дополнительные сведения о параметрах ограничения доступа см. в разделе "Свойства базы данных" (страница "Параметры").

Использование Transact-SQL

Чтобы установить однопользовательский режим для базы данных, выполните следующие действия:

  1. Соединитесь с ядром СУБД .

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере база данных устанавливается в режим SINGLE_USER для получения монопольного доступа. Затем состояние базы данных AdventureWorks2022 устанавливается в READ_ONLY, а также возвращается доступ к базе данных всем пользователям.

Предупреждение

Чтобы быстро получить монопольный доступ, в примере кода используется параметр завершения WITH ROLLBACK IMMEDIATE. Произойдет откат всех незавершенных транзакций, а любые другие соединения с базой данных 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