Скидання пароля SA в MS SQL Server 2012

У цій замітці розглянемо процедуру відновлення доступу до БД на MS SQL Server 2012 в тому випадку, якщо пароль SA був успішно забутий або відсутні користувачі з правами адміністративного управління MS SQL 2012. Ми покажемо, як скинути пароль облікового запису sa, і, якщо необхідно, надати потрібного облікового запису Windows права адміністратора MSSQL.

Ситуації, коли втрачено / забутий користувача SA на СУБД MS SQL трапляються досить часто. Як правило, варіант переустановки SQL та переключення БД не розглядається, тому що в такому разі будуть втрачені параметри конфігурації, що зберігаються в системній БД master. SQL Server надає набагато більш зручний функціонал відновлення доступу. Справа в тому, що члени локальної групи адміністраторів системи, на якій встановлений SQL Server, мають повні повноваження на СУБД, запущеної в режимі одного (single-user mode). Запустивши SQL Server в режимі одного, можна змінити пароль облікового запису SA, і / або надати адміністративні права потрібної наукового записи Windows.

Порада. Нагадаємо, що починаючи з SQL Server 2008 локальна група адміністраторів системи, на якій встановлений SQL Server, по-замовчуванням не додана в роль sysadmin на SQL сервері.

Процедура запуску SQL Server 2012 у режимі одного і відновлення доступу така (головна умова - необхідно мати права адміністратора системи, на якій встановлений MSSQL):

  1. Зупиняємо службу необхідного інстанси SQL Server (в нашому випадку ім'я інстанси MSSQL - EPOSERVER): net stop MSSQL $ EPOSERVER
  2. Відкриваємо редактор реєстру (regedit.exe) і переходимо в розділ параметрів запуску сервісу SQL: HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ MSSQL $ EPOSERVER
  3. змінюємо значення ImagePath, додавши в якості аргументу sqlservr.exe ключ "-m". У нашому прикладі вийшло таке значення: "C: \ Program Files \ Microsoft SQL Server \ MSSQL11.EPOSERVER \ MSSQL \ Binn \ sqlservr.exe" -m -s sEPOSERVER
  4. Запускаємо службу SQL Server: net start MSSQL $ EPOSERVER
  5. Тепер SQL запущений в режимі одного і дозволяє будь-якому члену локальної групи адміністраторів комп'ютера під'єднуватися до примірника SQL Server з правами sysadmin.
  6. За допомогою Management Studio змініть пароль SA або надайте потрібного облікового запису Windows роль sysadmin (Цю операцію можна виконати з командного рядка sqlcmd: EXEC sp_addsrvrolemember 'DOMAIN \ Username', 'sysadmin';)
  7. Залишилося ще раз зупинити службу SQL, змінити значення ключа ImagePart на оригінальне, прибравши атрибут "-m" ( "C: \ Program Files \ Microsoft SQL Server \ MSSQLEPOSERVER \ MSSQL \ Binn \ sqlservr.exe" -s sEPOSERVER ") і запустити SQL Server в звичайному режимі
Порада. У момент написання статті виявив, що SQL Server 2012 можливо запустити в режимі одного і з SQL Server Configuration Manager. Для цього у властивостях потрібного інстанси на вкладці Advanced у параметра Startup Parameters додати аргумент «-m;» .
В іншому - вся процедура аналогічна.