Восстановление доступа к SQL Server

Восстановление доступа к SQL Server

Совершенно неожиданно вы обнаружили, что пропали все члены группы sysadmin и теперь никто не может управлять сервером SQL. Необходимо восстановление доступа к SQL Server.

Это Большая проблема. Первая мысль – что делать чтобы восстановить доступ к SQL Server? Вторая мысль более правильная — можно поставить рядом еще один экземпляр SQL Server, подключить к нему все пользовательские базы, заново настроить сервер, возможно, заново написать все задания для SQL Server Agent. Снова выходные долой…

Данная перспектива сомнительная, поэтому рекомендую совершенно иной способ восстановления доступа к SQL Server. Для успешной реализации вам потребуется живой локальный администратор сервера Windows, на котором установлен SQL Server. SQL сервер в режиме single-mode позволяет устанавливать одно соединение только для локальных администраторов, причем коннект создается с правами sysadmin.

Восстановление доступа к SQL Server:

  1. Останавливаем сервис SQL Server
  2. Запускаем сервис SQL Server в single-mode. Есть два варианта запуска сервера в этом режиме:
    1. запускаем сервис с командной строки с помощью конструкции sqlservr -m (важно! командную строку необходимо запустить Run as administrator, иначе сервис не стартует);
    2. Запускаем Microsoft SQL Server Configuration Manager, щелкаем правой кнопкой мыши по сервису SQL Server, выбираем “Свойства”, переходим на закладку Startup Parameters (для SQL Server 2012) или Advanced (для SQL Server 2008) и добавляем в качестве startup параметра -m.Стартуем сервис.
  3. Запускаем Microsoft SQL Server Management Studio из-под аккаунта локального администратора сервера Windows. Здесь важно при запуске в появившемся окне соединения с сервером нажать кнопку Cancel. Нельзя устанавливать соединение в этот момент, поскольку сервер в режиме single-mode позволяет только одно соединение;
  4. Нажимаем кнопку “New query”, логинимся под аккаунтом Windows и запускаем следующие команды:
    1. CREATE LOGIN TEMP WITH PASSWORD = ‘TEMP’
    2. SP_ADDSRVROLEMEMBER ‘TEMP’, SYSADMIN
      Конечно, совершенно необязательно добавлять какой-то “левый” логин с правами sysadmin.. можно и существующий логин на SQL сервере добавить в группу сразу.. тогда выполнить надо только пункт B )))
  5. Останавливаем SQL Server;
  6. Убираем флаг -m, который ставили на шаге 2;
  7. Стартуем сервис уже в нормальном режиме;
  8. Логинимся под SQL аккаунтом, созданным в пункте 4. Пароль для аккаунта используем тот же, что и в п.4;
  9. Восстанавливаем членство необходимых аккаунтов в группе sysadmin;
  10. Удаляем аккаунт с сервера, созданный в пункте 4.
  11. Выдыхаем. Проводим выходные в свое удовольствие.

Автор: KHANZHIN

***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***
Полезные Скрипты

Рубрика Проверь себя

Ссылка на наш канал YouTube

Запись опубликована в рубрике Полезно и интересно с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: