Поделиться через


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

Сведения о восстановлении master базы данных в SQL Server в Linux в однопользовательском режиме см. в статье "Восстановление базы данных 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 или служебную программу sqlcmd.

При использовании этого -m параметра можно добавить определенное имя приложения, чтобы ограничить подключения только теми, кто имеет то же имя приложения, указанное в строке подключения. Например, утилита sqlcmd использует SQLCMD в качестве имени приложения в своей строке подключения. Если вы указываете -mSQLCMD в качестве параметра запуска, экземпляр SQL Server запускается в однопользовательском режиме, и подключения из других приложений, кроме sqlcmd, отклоняются. Этот параметр следует использовать, когда SQL Server запускается в однопользовательском режиме, а единственное доступное соединение занято неизвестным клиентским приложением.

Чтобы подключиться через редактор запросов в Management Studio, можно использовать -mSSMSQueryEditor и ввести App=SSMSQueryEditor на вкладке "Дополнительные параметры подключения " в диалоговом окне "Подключение к ядру СУБД ".

Примечание.

Имя приложения, указанное с параметром -m запуска, может учитывать регистр.

Внимание

Не используйте этот параметр как средство безопасности. Клиентское приложение предоставляет имя клиентского приложения и может указать ложное имя в составе строки подключения.

Соображения по Always On

При использовании односерверного режима для экземпляров SQL Server, настроенных в качестве экземпляра отказоустойчивого кластера Always On (FCI), или если ваши базы данных входят в группу доступности Always On (AG), необходимо учитывать дополнительные факторы.

Группы доступности

Запуск группы доступности AlwaysOn и баз данных в группе пропускается при запуске SQL Server в однопользовательском режиме. Если вам нужно устранить неполадки с базой данных, требующей запуска SQL Server в однопользовательском режиме, а база данных также является частью группы доступности, необходимо удалить базу данных из группы доступности перед запуском SQL Server в однопользовательском режиме, чтобы база данных была подключена к сети.

Экземпляры отказоустойчивого кластера

При установке SQL Server в кластеризованной среде при запуске SQL Server в одном пользовательском режиме библиотека DLL ресурсов кластера использует доступное подключение, что блокирует любые другие подключения к серверу. Если 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\<servername>
    
  6. После завершения операции закройте командную строку и переведите SQL и другие ресурсы обратно в режим «в сети», обратившись к администратору кластера.