Однопользовательский режим для SQL Server
Область применения: SQL Server
В этой статье содержатся сведения и шаги по запуску экземпляра SQL Server в однопользовательском режиме, что позволяет подключаться только одному пользователю к экземпляру.
Запуск экземпляра в однопользовательском режиме
После запуска SQL Server в однопользовательском режиме каждый член локальной группы администраторов на компьютере сможет подключаться к экземпляру SQL Server от имени участника предопределенной роли сервера sysadmin. Дополнительные сведения см. в статье Подключение к SQL Server в случае, если доступ системных администраторов заблокирован.
В определенных обстоятельствах может потребоваться запустить экземпляр SQL Server в однопользовательском режиме с помощью параметра -m
запуска. Например, может потребоваться изменить параметры конфигурации сервера или восстановить поврежденную master
базу данных или другую системную базу данных. Оба действия требуют запуска экземпляра SQL Server в однопользовательском режиме.
Следующий пример запускает экземпляр SQL Server в однопользовательском режиме и разрешает подключение только через редактор запросов среды SQL Server Management Studio.
net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"
Сведения о восстановлении базы данных в Linux в однопользовательском режиме см. в статье "master
Восстановление базы данных master в Linux в однопользовательском режиме".
Общие рекомендации
При запуске экземпляра 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 или Azure Data Studio либо используйте служебную программу sqlcmd.
При использовании -m
параметра с SQLCMD
или Management Studio можно ограничить подключения к указанному клиентскому приложению.
Примечание.
В Linux SQLCMD
необходимо использовать прописную букву, как показано ниже.
Например, -m"SQLCMD"
разрешает только одно подключение, которое должно идентифицироваться как клиентская программа sqlcmd. Этот параметр следует использовать, когда SQL Server запускается в однопользовательском режиме, а единственное доступное соединение занято неизвестным клиентским приложением. Чтобы подключиться через Редактор запросов в Management Studio, используйте -m"Microsoft SQL Server Management Studio - Query"
.
Внимание
Не используйте этот параметр как средство безопасности. Клиентское приложение предоставляет имя клиентского приложения и может указать ложное имя в составе строки подключения.
Рекомендации по AlwaysOn
При использовании односерверного режима для экземпляров SQL Server, настроенных в качестве экземпляра отказоустойчивого кластера AlwaysOn (FCI), или базы данных входят в группу доступности AlwaysOn (AG).
Группы доступности
Запуск группы доступности AlwaysOn и баз данных в группе пропускается при запуске SQL Server в однопользовательском режиме. Если вам нужно устранить неполадки с базой данных, требующей запуска SQL Server в однопользовательском режиме, а база данных также является частью группы доступности, необходимо удалить базу данных из группы доступности перед запуском SQL Server в однопользовательском режиме, чтобы база данных была подключена к сети.
Экземпляры отказоустойчивого кластера
При установке SQL Server в кластеризованной среде при запуске SQL Server в одном пользовательском режиме библиотека ресурсов кластера использует доступное подключение, тем самым блокируя любые другие подключения к серверу. Если SQL Server находится в этом состоянии, при попытке перенести агент SQL Server ресурс в режим "в сети", он может выполнить отработку отказа ресурса SQL на другой узел, если ресурс настроен для влияния на группу.
Для решения этой проблемы используется следующая процедура.
Удалите параметр запуска
-m
из дополнительных свойств SQL Server.Отключите ресурс SQL Server в автономном режиме.
С текущего узла владельца этой группы выполните в командной строке следующую команду:
net start MSSQLSERVER /m
Убедитесь, что администратор кластера или отказоустойчивый кластер консоль управления, что ресурс SQL Server по-прежнему находится в автономном режиме.
Подключитесь к SQL Server, используя следующую команду, и выполните требуемую операцию: SQLCMD -E -S<имя_сервера>.
После завершения операции закройте командную строку и переведите SQL и другие ресурсы обратно в режим «в сети», обратившись к администратору кластера.
Связанный контент
- Восстановление базы данных master в Linux в однопользовательском режиме
- Запуск, остановка или приостановка службы агента SQL Server
- Диагностическое соединение для администраторов баз данных
- Программа sqlcmd
- КОНТРОЛЬНАЯ ТОЧКА (Transact-SQL)
- sp_configure (Transact-SQL)
- Параметры запуска службы Database Engine