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


Подключение к SQL Server при блокировке системных администраторов

В этом разделе описывается, как восстановить доступ к ядру СУБД SQL Server в качестве системного администратора. Системный администратор может потерять доступ к экземпляру SQL Server из-за одной из следующих причин:

  • Все имена входа, которые являются членами предопределенных ролей сервера sysadmin, были удалены по ошибке.

  • Все группы Windows, которые являются членами фиксированной серверной роли sysadmin, были удалены по ошибке.

  • Имена входа, являющиеся членами предопределенных ролей сервера sysadmin, предназначены для лиц, которые покинули компанию или которые недоступны.

  • Учетная запись sa отключена или никто не знает пароль.

Одним из способов восстановления доступа является переустановка SQL Server и подключение всех баз данных к новому экземпляру. Это решение занимает много времени; для восстановления имен входа может потребоваться восстановление базы данных master из резервной копии. Если резервная копия базы данных master старше, она может не иметь всех сведений. Если резервная копия базы данных master является более последней, она может иметь те же имена входа, что и предыдущий экземпляр; поэтому администраторы по-прежнему будут заблокированы.

Резолюция

Запустите экземпляр SQL Server в однопользовательском режиме с помощью параметров -m или -f . Любой член локальной группы администраторов компьютера затем может подключиться к экземпляру SQL Server как член фиксированной серверной роли sysadmin.

Замечание

При запуске экземпляра SQL Server в однопользовательском режиме сначала остановите службу агента SQL Server. В противном случае агент SQL Server может сначала подключиться и запретить подключение от имени второго пользователя.

При использовании параметра -m с sqlcmd или SQL Server Management Studio можно ограничить подключения к указанному клиентскому приложению. Например, -m"sqlcmd" ограничивает подключения к одному соединению, и это соединение должно определять себя как клиентская программа sqlcmd . Используйте этот параметр при запуске SQL Server в однопользовательском режиме, а неизвестное клиентское приложение принимает единственное доступное подключение. Чтобы подключиться через редактор запросов в Management Studio, используйте параметр -m "Microsoft SQL Server Management Studio — Query".

Это важно

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

Пошаговые инструкции по запуску SQL Server в однопользовательском режиме см. в разделе Configure Server Startup Options (SQL Server Configuration Manager).

Инструкция к шагуBy-Step

В следующих инструкциях описан процесс подключения к SQL Server 2014 под управлением Windows 8 или более поздней версии. Предоставляются незначительные корректировки для более ранних версий SQL Server или Windows. Эти инструкции должны выполняться при входе в Windows в качестве члена группы локальных администраторов, и предполагается, что среда SQL Server Management Studio установлена на компьютере.

  1. На начальной странице запустите SQL Server Management Studio. В меню "Вид" выберите "Зарегистрированные серверы". (Если сервер еще не зарегистрирован, щелкните правой кнопкой мыши локальные группы серверов, наведите указатель на задачи и нажмите кнопку "Регистрация локальных серверов".)

  2. В области "Зарегистрированные серверы" щелкните правой кнопкой мыши сервер и выберите диспетчер конфигурации SQL Server. Это должно запросить разрешение на запуск от имени администратора, а затем открыть программу Configuration Manager.

  3. Закройте Management Studio.

  4. В диспетчере конфигурации SQL Server на панели слева выберите Службы SQL Server. На панели справа найдите ваш экземпляр SQL Server. (Экземпляр SQL Server по умолчанию включает в себя (MSSQLSERVER) после имени компьютера. Именованные экземпляры появляются в верхнем регистре с тем же названием, что и в списке «зарегистрированные серверы»). Щелкните правой кнопкой мыши экземпляр SQL Server и выберите пункт "Свойства".

  5. На вкладке "Параметры запуска " в поле " Указание параметра запуска " введите -m и нажмите кнопку Add. (Это дефис, затем буква «m» в нижнем регистре.)

    Замечание

    Для некоторых более ранних версий SQL Server нет вкладки "Параметры запуска ". В этом случае на вкладке "Дополнительно" дважды щелкните "Параметры запуска". Параметры открываются в очень маленьком окне. Не изменяйте существующие параметры. В самом конце добавьте новый параметр ;-m и нажмите кнопку OK. (Это точка с запятой, затем дефис, затем буква «m» в нижнем регистре.)

  6. Щелкните OKи после перезапуска сообщения щелкните правой кнопкой мыши имя сервера и нажмите кнопку "Перезапустить".

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

  8. На начальном экране Windows 8 щелкните правой кнопкой мыши значок для Management Studio. В нижней части экрана выберите "Запуск от имени администратора". (Это передает учетные данные администратора в SSMS.)

    Замечание

    Для более ранних версий Windows параметр "Запуск от имени администратора" отображается в подменю.

    В некоторых конфигурациях SSMS попытается выполнить несколько подключений. Несколько подключений завершаются ошибкой, так как SQL Server находится в однопользовательском режиме. Для выполнения можно выбрать одно из следующих действий. Выполните одно из следующих действий.

    1. Подключитесь к обозревателе объектов с помощью проверки подлинности Windows (включая учетные данные администратора). Разверните Безопасность, затем Имена входа и дважды щелкните на своем имени входа. На странице "Роли сервера" выберите sysadminи нажмите кнопку OK.

    2. Вместо соединения с помощью обозревателя объектов подключитесь с помощью окна запросов, используя проверку подлинности Windows (которая включает учетные данные администратора). (Этот способ можно подключить только в том случае, если вы не подключились к обозревателе объектов.) Выполните следующий код, чтобы добавить новое имя входа проверки подлинности Windows, являющееся членом sysadmin предопределенных ролей сервера. В следующем примере создается пользователь с именем CONTOSO\PatK.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;  
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];  
      
    3. Если SQL Server работает в смешанном режиме проверки подлинности, подключитесь к окну запроса с помощью проверки подлинности Windows (включая учетные данные администратора). Выполните следующий код, чтобы создать новое имя входа проверки подлинности SQL Server, являющееся членом sysadmin предопределенных ролей сервера.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';  
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;  
      

      Предупреждение

      Замените ************ надежным паролем.

    4. Если SQL Server работает в смешанном режиме проверки подлинности и хотите сбросить пароль sa учетной записи, подключитесь к окну запроса с помощью проверки подлинности Windows (включая учетные данные администратора). Измените пароль учетной записи с помощью следующего sa синтаксиса.

      ALTER LOGIN sa WITH PASSWORD = '************';  
      

      Предупреждение

      Замените ************ надежным паролем.

  9. Следующие шаги теперь изменяют SQL Server обратно в многопользовательский режим. Закройте SSMS.

  10. В диспетчере конфигурации SQL Server на панели слева выберите Службы SQL Server. В правой области щелкните правой кнопкой мыши экземпляр SQL Server и выберите пункт "Свойства".

  11. На вкладке "Параметры запуска " в поле "Существующие параметры " выберите -m и нажмите кнопку Remove.

    Замечание

    Для некоторых более ранних версий SQL Server нет вкладки "Параметры запуска ". В этом случае на вкладке "Дополнительно" дважды щелкните "Параметры запуска". Параметры открываются в очень маленьком окне. Удалите ;-m, который вы добавили ранее, а затем нажмите OK.

  12. Щелкните правой кнопкой мыши имя сервера и нажмите кнопку "Перезапустить".

Теперь вы должны быть в состоянии подключиться без проблем с одной из учетных записей, которая теперь является членом sysadmin фиксированной роли сервера.

См. также

Запуск SQL Server в однопользовательском режиме
Параметры запуска службы Database Engine