У цій замітці розглянемо процедуру відновлення доступу до БД на 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):
- Зупиняємо службу необхідного інстанси SQL Server (в нашому випадку ім'я інстанси MSSQL - EPOSERVER):
net stop MSSQL $ EPOSERVER
- Відкриваємо редактор реєстру (regedit.exe) і переходимо в розділ параметрів запуску сервісу SQL:
HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ MSSQL $ EPOSERVER
- змінюємо значення ImagePath, додавши в якості аргументу sqlservr.exe ключ "-m". У нашому прикладі вийшло таке значення:
"C: \ Program Files \ Microsoft SQL Server \ MSSQL11.EPOSERVER \ MSSQL \ Binn \ sqlservr.exe" -m -s sEPOSERVER
- Запускаємо службу SQL Server:
net start MSSQL $ EPOSERVER
- Тепер SQL запущений в режимі одного і дозволяє будь-якому члену локальної групи адміністраторів комп'ютера під'єднуватися до примірника SQL Server з правами sysadmin.
- За допомогою Management Studio змініть пароль SA або надайте потрібного облікового запису Windows роль sysadmin (Цю операцію можна виконати з командного рядка sqlcmd:
EXEC sp_addsrvrolemember 'DOMAIN \ Username', 'sysadmin';)
- Залишилося ще раз зупинити службу SQL, змінити значення ключа ImagePart на оригінальне, прибравши атрибут "-m" ( "C: \ Program Files \ Microsoft SQL Server \ MSSQLEPOSERVER \ MSSQL \ Binn \ sqlservr.exe" -s sEPOSERVER ") і запустити SQL Server в звичайному режимі
В іншому - вся процедура аналогічна.