В этой заметке рассмотрим процедуру восстановления доступа к БД на 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 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 в обычном режиме

В остальном — вся процедура аналогична.
Спасибо за заметку! Я раньше не знал, что можно так сделать. Интересно!