- Set a database to single-user mode
- Limitations and restrictions
- Prerequisites
- Permissions
- Use SQL Server Management Studio
- Use Transact-SQL
- Установка однопользовательского режима базы данных
- Перед началом
- Ограничения
- Предварительные требования
- безопасность
- Permissions
- Использование среды SQL Server Management Studio
- Установка однопользовательского режима базы данных
- Использование Transact-SQL
- Установка однопользовательского режима базы данных
- Запуск SQL Server в однопользовательском режиме
- Примечание для кластеризованной установки
- Start SQL Server in Single-User Mode
- Note for Clustered installations
Set a database to single-user mode
Applies to: SQL Server (all supported versions)
This article describes how to set a user-defined database to single-user mode in SQL Server by using SQL Server Management Studio or Transact-SQL. Single-user mode specifies that only one user at a time can access the database and is generally used for maintenance actions.
Limitations and restrictions
If other users are connected to the database at the time that you set the database to single-user mode, their connections to the database will be closed without warning.
The database remains in single-user mode even if the after the user that set the option is disconnected. At that point, a different user, but only one, can connect to the database.
Prerequisites
- Before you set the database to SINGLE_USER, verify that the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF. When this option is set to ON, the background thread that is used to update statistics takes a connection against the database, and you will be unable to access the database in single-user mode. For more information, see ALTER DATABASE SET Options (Transact-SQL).
Permissions
Requires ALTER permission on the database.
Use SQL Server Management Studio
To set a database to single-user mode:
In Object Explorer, connect to an instance of the SQL Server Database Engine, and then expand that instance.
Right-click the database to change, and then select Properties.
In the Database Properties dialog box, select the Options page.
From the Restrict Access option, select Single.
If other users are connected to the database, an Open Connections message will appear. To change the property and close all other connections, select Yes.
You can also set the database to Multiple or Restricted access by using this procedure. For more information about the Restrict Access options, see Database Properties (Options Page).
Use Transact-SQL
To set a database to single-user mode:
Connect to the Database Engine.
From the Standard bar, select New Query.
Copy and paste the following example into the query window and select Execute. This example sets the database to SINGLE_USER mode to obtain exclusive access. The example then sets the state of the AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.
To quickly obtain exclusive access, the code sample uses the termination option WITH ROLLBACK IMMEDIATE . This will cause all incomplete transactions to be rolled back and any other connections to the AdventureWorks2012 database to be immediately disconnected.
Источник
Установка однопользовательского режима базы данных
Применимо к: SQL Server (все поддерживаемые версии)
В этом разделе описывается, как установить однопользовательский режим в SQL Server при помощи среды SQL Server Management Studio или Transact-SQL. Однопользовательский режим указывает, что одновременный доступ к базе данных получает только один пользователь. Это в основном используется для операций обслуживания.
В этом разделе
Перед началом работы
Установка однопользовательского режима базы данных с помощью
Перед началом
Ограничения
Если в процессе установки однопользовательского режима к базе данных подключены другие пользователи, то их подключения к базе данных будут закрыты без предупреждения.
База данных остается в однопользовательском режиме даже и в том случае, если пользователь, установивший этот параметр, отключился. В этот момент к базе данных могут подключаться и другие пользователи, но одновременно может быть подключен только один.
Предварительные требования
- Перед заданием параметра SINGLE_USER проверьте, чтобы параметру AUTO_UPDATE_STATISTICS_ASYNC было присвоено значение OFF. Если этот параметр имеет значение ON, то фоновый поток, используемый для обновления статистики, соединится с базой данных и доступ к базе данных в однопользовательском режиме будет невозможен. Дополнительные сведения см. в разделе Параметры ALTER DATABASE SET (Transact-SQL).
безопасность
Permissions
Необходимо разрешение ALTER на базу данных.
Использование среды SQL Server Management Studio
Установка однопользовательского режима базы данных
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engineи разверните его.
Щелкните правой кнопкой мыши базу данных, которую нужно изменить, и выберите пункт Свойства.
В диалоговом окне Свойства базы данных выберите страницу Параметры .
Для параметра Ограничение доступа выберите Один.
Если к базе данных подключены другие пользователи, то появится сообщение Открытые соединения . Чтобы изменить свойство и закрыть все другие подключения, нажмите кнопку Да.
С помощью этой процедуры можно также установить режим одновременного или ограниченного доступа к базе данных. Дополнительные сведения о параметрах ограниченного доступа см. в разделе Свойства базы данных (страница «Параметры»).
Использование Transact-SQL
Установка однопользовательского режима базы данных
Установите соединение с компонентом Компонент Database Engine.
На панели «Стандартная» нажмите Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере база данных устанавливается в режим SINGLE_USER для получения монопольного доступа. Затем состояние базы данных AdventureWorks2012 устанавливается в READ_ONLY и возвращается доступ к базе данных всем пользователям. Параметр прекращения WITH ROLLBACK IMMEDIATE указывается в первой инструкции ALTER DATABASE . Произойдет откат всех незавершенных транзакций, а любые другие соединения с базой данных AdventureWorks2012 будут немедленно разорваны.
Источник
Запуск SQL Server в однопользовательском режиме
Применимо к: SQL Server (все поддерживаемые версии)
При определенных обстоятельствах экземпляр SQL Server нужно запустить в однопользовательском режиме (используется параметр запуска -m). Например, может понадобиться изменить параметры конфигурации сервера, восстановить поврежденную базу данных master или другую системную базу данных. Для обоих этих действий необходим запуск экземпляра SQL Server в однопользовательском режиме.
После запуска SQL Server в однопользовательском режиме каждый член локальной группы администраторов на компьютере сможет подключаться к экземпляру SQL Server от имени члена предопределенной роли сервера sysadmin. Дополнительные сведения см. в статье Подключение к SQL Server в случае, если доступ системных администраторов заблокирован.
При запуске экземпляра SQL Server в однопользовательском режиме необходимо обратить внимание на следующее:
Только один пользователь может подключиться к серверу.
Процесс CHECKPOINT не выполняется. По умолчанию он автоматически выполняется при запуске.
Перед подключением к экземпляру SQL Server в однопользовательском режиме остановите службу агента SQL Server . В противном случае служба агента SQL Server будет использовать соединение, тем самым блокируя его
Если экземпляр SQL Server запускается в однопользовательском режиме, среда SQL Server Management Studio может подключаться к SQL Server. Обозреватель объектов в среде Среда Management Studio может вызвать ошибку, так как для некоторых операций ему необходимо одновременно несколько соединений. Чтобы управлять SQL Server в однопользовательском режиме, выполняйте инструкции Transact-SQL , подключаясь только через редактор запросов в среде Среда Management Studio, или используйте программу sqlcmd.
При использовании параметра -m с SQLCMD или Среда Management Studio вы можете ограничить подключения к определенному клиентскому приложению.
В Linux SQLCMD нужно указывать прописными буквами.
Например, -m»SQLCMD» разрешает только одно подключение, которое должно идентифицироваться как клиентская программа SQLCMD. Этот параметр следует использовать, когда SQL Server запускается в однопользовательском режиме, а единственное доступное соединение занято неизвестным клиентским приложением. Чтобы подключиться с помощью редактора запросов в Среда Management Studio, используйте -m»Microsoft SQL Server Management Studio — Query» .
Не используйте этот параметр как средство безопасности. Клиентское приложение предоставляет имя клиентского приложения и может указать ложное имя в составе строки подключения.
Следующий пример запускает экземпляр SQL Server в однопользовательском режиме и разрешает подключение только через редактор запросов среды SQL Server Management Studio.
Примечание для кластеризованной установки
Когда при установке SQL Server в кластерной среде выполняется запуск SQL Server в однопользовательском режиме, DLL-библиотека ресурсов кластера использует доступное соединение, блокируя тем самым любые другие подключения к серверу. В таком состоянии SQL Server попытка перевести ресурс агента SQL Server в режим «в сети», может привести к переходу ресурса SQL на другой узел, если этот ресурс настроен с учетом группы.
Для решения этой проблемы используется следующая процедура.
Удалите параметр запуска -m из дополнительных свойств SQL Server.
Переведите ресурс SQL Server в режим «вне сети».
С текущего узла владельца этой группы выполните в командной строке следующую команду:
net start MSSQLSERVER /m.
Уточните у администратора кластера или с помощью консоли управления отказоустойчивым кластером, остается ли ресурс SQL Server в режиме «вне сети».
Подключитесь к SQL Server, используя теперь следующую команду, и выполните необходимую операцию: SQLCMD -E -S .
После завершения операции закройте командную строку и переведите SQL и другие ресурсы обратно в режим «в сети», обратившись к администратору кластера.
Источник
Start SQL Server in Single-User Mode
Applies to: SQL Server (all supported versions)
Under certain circumstances, you may have to start an instance of SQL Server in single-user mode by using the startup option -m. For example, you may want to change server configuration options or recover a damaged master database or other system database. Both actions require starting an instance of SQL Server in single-user mode.
Starting SQL Server in single-user mode enables any member of the computer’s local Administrators group to connect to the instance of SQL Server as a member of the sysadmin fixed server role. For more information, see Connect to SQL Server When System Administrators Are Locked Out.
When you start an instance of SQL Server in single-user mode, note the following:
Only one user can connect to the server.
The CHECKPOINT process is not executed. By default, it is executed automatically at startup.
Stop the SQL Server Agent service before connecting to an instance of SQL Server in single-user mode; otherwise, the SQL Server Agent service uses the connection, thereby blocking it.
When you start an instance of SQL Server in single-user mode, SQL Server Management Studio can connect to SQL Server. Object Explorer in Management Studio might fail because it requires more than one connection for some operations. To manage SQL Server in single-user mode, execute Transact-SQL statements by connecting only through the Query Editor in Management Studio, or use the sqlcmd utility.
When you use the -m option with SQLCMD or Management Studio, you can limit the connections to a specified client application.
On Linux, SQLCMD must be capitalized as shown.
For example, -m»SQLCMD» limits connections to a single connection and that connection must identify itself as the SQLCMD client program. Use this option when you are starting SQL Server in single-user mode and an unknown client application is taking the only available connection. To connect through the Query Editor in Management Studio, use -m»Microsoft SQL Server Management Studio — Query».
Do not use this option as a security feature. The client application provides the client application name, and can provide a false name as part of the connection string.
The following example starts the SQL Server instance in single-user mode and only allows connection through the SQL Server Management Studio Query Editor.
Note for Clustered installations
For SQL Server installation in a clustered environment, when SQL Server is started in single user mode, the cluster resource dll uses up the available connection thereby blocking any other connections to the server. When SQL Server is in this state, if you try to bring SQL Server Agent resource online, it may fail over the SQL resource to a different node if the resource is configured to affect the group.
To get around the problem use the following procedure:
Remove the -m startup parameter from the SQL Server advanced Properties.
Take the SQL Server resource offline.
From the current owner node of this group, issue the following command from the command prompt:
net start MSSQLSERVER /m.
Verify from the cluster administrator or failover cluster management console that the SQL Server resource is still offline.
Connect to the SQL Server now using the following command and do the necessary operation: SQLCMD -E -S .
Once the operation is complete, close the command prompt and bring back the SQL and other resources online through cluster administrator.
Источник