Подключение к 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 2012, работающим на платформе 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. Нажмите ОК, а после сообщения о перезагрузке щелкните правой кнопкой мыши имя сервера и выберите пункт Перезапустить.

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

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

    ПримечаниеПримечание

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

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

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

    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, добавленный ранее, и нажмите ОК.

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

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

См. также

Основные понятия

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

Параметры запуска службы Database Engine