Установка однопользовательского режима базы данных
Область применения: 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
Чтобы установить однопользовательский режим для базы данных, выполните следующие действия:
В обозреватель объектов подключитесь к экземпляру ядро СУБД SQL Server, а затем разверните этот экземпляр.
Щелкните правой кнопкой мыши базу данных, которую нужно изменить, и выберите пункт Свойства.
В диалоговом окне Свойства базы данных выберите страницу Параметры.
Для параметра Ограничение доступа выберите Один.
Если к базе данных подключены другие пользователи, то появится сообщение Открытые соединения . Чтобы изменить свойство и закрыть все остальные подключения, нажмите кнопку Да.
С помощью этой процедуры можно также установить режим одновременного или ограниченного доступа к базе данных. Дополнительные сведения о параметрах ограничения доступа см. в разделе "Свойства базы данных" (страница "Параметры").
Использование Transact-SQL
Чтобы установить однопользовательский режим для базы данных, выполните следующие действия:
Соединитесь с ядром СУБД .
На стандартной панели выберите пункт Создать запрос.
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере база данных устанавливается в режим
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