Всякое бывает и всякое не бывает, но лучше иметь проработку на будущее чтобы не метаться потом, с вопросом – А как? Так вот сейчас я разберу давно волновавший меня вопрос, что делать если на сервере базы данных MS SQL Server 2008 R2 который достался Мне в наследство от предыдущего системного администратора не оставил вообще никаких паролей для подключения в оснастку управления именуемую как SQL Management Studio. Конечно оно все работает до поры до времени, но вот это время всегда приходится на такой парадокс:

Все обычно падает в пятницу, а в понедельник, что не упало в пятницу.

Я же этого всячески избегаю и прорабатываю постоянно сценки и шаги по восстановлению и резервированию если что-то пойдет не так.

Что можно узнать из развернутого?

Start — Control Panel — Administrative Tools — Services, служба относящаяся к сервису MSSQL — SQL Server (MSSQLSERVER) при открытии ее свойств (Properties) и перехода на вкладку Log On работает от имени системной учетной записи. Это хорошо. Теперь в любое время когда у Вас запланированы регламентные работы делаем так, переопределяем запуск данной службы от имени учетной записи с правами (обязательно) администратора на этой системе, но сперва конечно же создаем пользователя:

Start — All Programs — Accessories — запускаем Command Prompt с правами администратора и создаем пользователи и даем ему права локального администратора:

C:\Windows\system32>net user ekzorchik 712mbddr@ /add

The command completed successfully.

C:\Windows\system32>net localgroup Administrators ekzorchik /add

The command completed successfully.

C:\Windows\system32>exit

Теперь во вкладке Log On свойств службы SQL Server меняем от имени кого будет происходить запуск службы как показано на представленном скриншоте ниже:

This account: .\ekzorchik

Password: 712mbddr@

Confirm password: 712mbddr@

Изменяю запуск службы SQL Server на локальную учетную запись

Следом последует окно с текстом:

The account .\ekzorchik has been granted the Log On As a Service right.

The new logon name will not take effect until you stop and restart the service

По такому же принципу проделываем и для службы SQL Server Agent от имени кого запускать данную службу.

Ну все правильно изменения применятся когда служба будет остановлена, а после запущена.

C:\Windows\system32>net stop SQLSERVERAGENT

The SQL Server Agent (MSSQLSERVER) service is stopping..

The SQL Server Agent (MSSQLSERVER) service was stopped successfully.

C:\Windows\system32>net stop MSSQLSERVER

The SQL Server (MSSQLSERVER) service is stopping.

The SQL Server (MSSQLSERVER) service was stopped successfully.

C:\Windows\system32>net start SQLSERVERAGENT

The SQL Server Agent (MSSQLSERVER) service is starting.

The SQL Server Agent (MSSQLSERVER) service was started successfully.

Затем делаю Logoff, а потом Logon в систему под уже созданной локальной учетной записью ekzorchik. Открываю оснастку SQL Management Studio:

Start — All Programs — Microsoft SQL Server 2008 R2 — SQL Server Management Studio и авторизуюсь с использованием Windows Authentication

Пробую авторизоваться

Нажимаю Connect, но в ответ вместо успешно входа получаю ошибку:

 

Увы! Подключиться не удалось

Делаю вывод что не прокатит такой фокус, вспоминая что еще можно сделать, вот в Ubuntu как сбрасываю пароль на учетную запись суперпользователя root в mysql я захожу в однопользовательский режим, интересно а тут такое есть.

Возвращаю все как было, т. е. Запуск службы от имени системы

Чтение документации на официальном сайте Microsoft привело меня вот к таким вот действиям по сбросу пароля на учетную запись SA:

Запускаю оснастку SQL Server Configuration Manager:

Start — All Programs — Microsoft SQL Server 2008 R2 — Configuration Tools — SQL Server Configuration Manager, затем останавливаю сервис SQL Server (MSSQLSERVER)

Останавливаю службы SQL Server через конфигуратор управления настройками

После чего остановленного сервиса открываю через правый клик его свойства (Properties), тут переключаюсь на вкладку Advanced (Расширенные) и в строке:

Startup Parameters после: -dC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

указываю ключ -mSQLCMD. В итоге должно получиться следующее:

Изменяю поведение запуска сервиса sql server

Теперь запускаю службу для применения настроек. Если по службам SQL в оснастке управления все хорошо, служба запустилась то переходим к следующему этапу.

Открываю консоль командной строки с правами администратора:

Start — All Programs — Accessories — запускаем Command Prompt с правами администратора

C:\Windows\system32>sqlcmd

1> create login recovery with password='712mbddr@'

2> go

1> sp_addsrvrolemember 'recovery','sysadmin'

2> go

1> quit

Снова останавливаю сервис SQL Server (MSSQLServer), запускаю свойства, перехожу на вкладку Advanced и убираю добавленный параметр в запуске и запускаю сервис снова.

Теперь пробую авторизоваться

Пробую авторизовать под новой учетной записью SQL

 

Нажимаю Connect

Аутентификация проходит успешно

Что теперь? А просто изменяем пароль sql учетной записи sa как и планировалось, а текущая останется на всякий случай:

(local) (SQL Server 10.50.1600 — recovery) — Security — Logins — выделяю учетную запись sa и через правый клик Properties ввожу новый пароль:

Password: 712mbddr@@

Confirm password: 712mbddr@@

И нажимаю OK. Разлогиниваюсь и проверяю что могу подключиться под учетной запись SQL:

File — Disconnect Object Explorer

File — Connect Object Explorer…

Изменив пароль на учетной запись sa также успешно авторизуюсь

Нажимаю Connect и вуаля все получилось, как и было задумано.

На заметку: Но все можно проделать и из командной строки:

C:\Windows\system32>net stop mssqlserver

The SQL Server (MSSQLSERVER) service is stopping.

The SQL Server (MSSQLSERVER) service was stopped successfully.

C:\Windows\system32>net start mssqlserver /mSQLCMD

The SQL Server (MSSQLSERVER) service is starting.

The SQL Server (MSSQLSERVER) service was started successfully.

C:\Windows\system32>sqlcmd

1> <я_подключился>

Теперь я еще больше знаю по SQL Server 2008 R2 на всякий непредвиденный случай, вдруг у нас в отделе кто-то возьмет и намеренно все поменяет не предупредив ни кого. Задача поставленная в самом начале данной заметки выполнена. На этом я прощаюсь, с уважением автор блога — Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru