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

В этом разделе описывается, как восстановить доступ к SQL Server компоненту Database Engine в качестве системного администратора. Системный администратор может потерять доступ к экземпляру 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 в однопользовательском режиме см. в статье Настройка параметров запуска сервера (диспетчер конфигурации SQL Server).

Пошаговые инструкции

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

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

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

  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