Однопользовательский режим для 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 на другой узел, если ресурс настроен для влияния на группу.

Для решения этой проблемы используется следующая процедура.

  1. Удалите параметр запуска -m из дополнительных свойств SQL Server.

  2. Отключите ресурс SQL Server в автономном режиме.

  3. С текущего узла владельца этой группы выполните в командной строке следующую команду:

    net start MSSQLSERVER /m
    
  4. Убедитесь, что администратор кластера или отказоустойчивый кластер консоль управления, что ресурс SQL Server по-прежнему находится в автономном режиме.

  5. Подключитесь к SQL Server, используя следующую команду, и выполните требуемую операцию: SQLCMD -E -S<имя_сервера>.

  6. После завершения операции закройте командную строку и переведите SQL и другие ресурсы обратно в режим «в сети», обратившись к администратору кластера.