рассмотрим процедуру восстановления доступа к БД на 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\Servic es\ MSSQL$EPOSERVER
Изменяем значение ImagePath, добавив в качестве аргумента sqlservr.exe ключ «-m». В нашем примере получилось такое значение: "C:\Program Files\Microsoft SQL Server\MSSQL11.EPOSERVER\MSSQL\Binn\sqlservr.exe” -m -s sEPOSERVER
post-1081-0-43648800-1431427656_thumb.jpg
Запускаем службу 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 в обычном режиме
Совет. В момент написания статье обнаружил, что SQL Server 2012 можно запустить в однопользовательском режиме и из SQL Server Configuration Manager. Для этого в свойствах нужного инстанса на вкладке Advanced у параметра Startup Parameters добавить аргумент «-m;» .
post-1081-0-04978600-1431427658_thumb.jpg