MSSQL have its own database management tool called as «MSSQL Server Management Studio (SSMS)».
Here are steps to reset SA password using SSMS :
1] Open SSMS management console, it will prompt for authentication details,
Select Server Type : «Database Engine»,
Server name : IP / hostname of your MSSQL server
Authentication : Windows Authentication
Once you select Authentication type as «Windows Authentication», the user name and password fields will be grayed out and it will allow you to login SQL server without entering login details.
Windows Authentication is possible only when you are logged on same server in RDP on which SQL service is present.
2] once you are in, under «Object Explorer» expand Security and then Logins
3] locate and right click on user SA and select Properties
4] under General section enter desired password in front of «Password:» and «Confirm Password:»
5] hit OK at bottom.
This is the easiest and secure way to reset SA password instead of using any third party non secure tools
I have a computer which was used by another employee.
SQL Server 2008 R2 was installed but I don’t know the ‘sa’ password.
When I try to alter the login, it gives below error.
Cannot alter the login ‘sa’, because it does not exist or you do not have permission.
When I try to restore a database, it gives a different permission error.
(When I enter the Security —> Logins —> sa —> Properties
windows authentication is disabled.)
Can I change it?
P.S: Password is not «password»
asked Jul 13, 2012 at 18:09
1
best answer written by Dmitri Korotkevitch:
Speaking of the installation, SQL Server 2008 allows you to set
authentication mode (Windows or SQL Server) during the installation
process. You will be forced to choose the strong password for sa user
in the case if you choose sql server authentication mode during setup.If you install SQL Server with Windows Authentication mode and want to
change it, you need to do 2 different things:
Go to SQL Server Properties/Security tab and change the mode to SQL Server authentication mode
Go to security/logins, open SA login properties
a. Uncheck «Enforce password policy» and «Enforce password expiration»
check box there if you decide to use weak passwordb. Assign password to SA user
c. Open «Status» tab and enable login.
I don’t need to mention that every action from above would violate
security best practices that recommend to use windows authentication
mode, have sa login disabled and use strong passwords especially for
sa login.
answered Jul 13, 2012 at 18:27
3
Обновлено 07.12.2016
Всем привет, сегодня расскажу как изменить или сбросить пароль sa sql сервера. Напомню sa это логин пользователя в MS SQL, имеющий по умолчанию самые высокие привилегии, сама учетка локальная, зачастую даже выключенная, но тем не менее часто используемая. Может получиться такая ситуация, что вы забыли от нее пароль и тем самым потеряли доступ к базам данных, сегодня вы научитесь это обходить и восстанавливать доступ до ваших БД.
И так у вас есть MS SQL, как установить sql я уже рассказывал, кто не знает посмотрите. У вас задача сменить пароль для пользователя sa sql.
Пароль sa по умолчанию
Напомню пароль sa по умолчанию как ни странно sa
Единственное требование, вы везде должны быть локальным администратором
Сменить пароль sa в sql через графический интерфейс
Начнемс, откройте пуск и идите по пути Все программы > Microsoft SQL Server 2012 R2 > Среда SQL Server Management Studio
Либо вы можете открыть командную строку и ввести там ssms.
Не важно какой способ вы выбрали эффект будет один и тот же у вас откроется SQL Server Management Studio. Но второй способ явно быстрее.
По умолчанию стоит проверка подлинности Windows, что означает, что вы сможете войти только с локальной учетной записью Windows или доменной, главное чтобы были права.
Как видите, учетная запись sa по умолчанию отключена, но это не помешает вам сменить ей пароль.
ms sql позволяет сбросить пароль sa через ее свойства, для этого щелкаете правым кликом и выбираете свойства из контекстного меню.
На вкладке общие вы увидите, поле для ввода нового пароля, единственное учтите, что если стоит галка Требовать использование политики паролей, вам придется придумать стойкий пароль отвечающий требованиям безопасности, а именно
- Должна быть большая буква в пароле
- Должна быть маленькая буква в пароле
- Должен быть спецсимвол или цифра в пароле
Если галку снять, то можно задать что угодно, я задал например от 1 до 6. Как видите сменить пароль sa в sql, проще паренной репы.
Единственное, если вы хотите использовать учетную запись sa, то ее нужно включить, для этого перейдите в пункт состояние и укажите Имя входя Включено.
Еще нюанс, вы же помните, что у вас стоит проверка подлинности Windows, а это значит, что нам это не подходит для sa. Щелкнем правым кликом по названию сервера, вверху иерархии и выберем свойства.
На вкладке безопасность, выберем вариант Проверка подлинности SQL Server и Windows. Теперь вы можете заходить с помощью пользователя sa в sql.
Если при попытке войти Management Studio выдает ошибку 233, что подключение к серверу успешно установлено, но затем произошла ошибка при входе, то сделайте следующее.
Откройте Пуск > Панель управления > Администрирование > Службы и перезапустите службу SQL Server.
Как видите, теперь я успешно залогинился.
Сменить пароль sa в sql через командную строку
Чтобы в sql сбросить пароль sa через командную строку воспользуйтесь вот такими командами.
Данной командой вы увидите все доступные сервера MS SQL их SPN
Далее вводите команду
osql -S имя сервера-E
далее пишите
sp_password NULL, <вставьте_новый_пароль_тут>, ’sa’
GO
Если вылезет сообщение Password validation failed. The password does not meet Windows policy requirements because it is too short. То задайте более строгий пароль.
Все после этого вы сбросите пароль sa в sql.
Еще вариант использования osql это вот так
cd C:Program FilesMicrosoft SQL Server110ToolsBinn
затем мы пытаемся подключиться под доверенной учетной записей ОС
osql.exe» -S (local)имя вашего сервера -E
И последний рубеж
ALTER LOGIN SA WITH PASSWORD=‘new_password’
она заменит пароль на new_password
С помощью программы Asunsoft SQL Password Geeker
Есть утилита Asunsoft SQL Password Geeker, к сожалению платная, но способная выполнить поставленную задачу. Запускаем ее жмем Browse далее идем по пути C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA и открываем master.mdf
теперь, чтобы сбросить пароль sa в sql, выберите его и нажмите Reset.
Сменить пароль sa в монопольном режиме
Есть еще четвертый способ поменять пароль от sa, и заключается он в запуске MS SQL в однопользовательском режиме (single-user mode). Что нам потребуется.
Первое это останавливаем MS SQL Server, можно через службы, а можно и из командной строки
Далее открываете реестр Windows и переходите в ветку
HKEY_LOCAL_MACHINESYSTEMControlSet001Services MSSQLSERVER
Теперь вам нужно задать параметр в строке ImagePath -m как раз и будет говорить об однопользовательском режиме. У меня получилось вот так
«C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBinnsqlservr.exe» -m -s MSSQLSERVER
Теперь запускаете MS SQL командой
Теперь SQL запущен в однопользовательском режиме и позволяет любому члену локальной группы администраторов компьютера подсоединяться к экземпляру SQL Server с правами sysadmin, но нужно SQL об этом сказать. Посмотреть режим работы можно в свойствах службы.
В командной строке пишем
cd C:Program FilesMicrosoft SQL Server110ToolsBinn
sqlcmd.exe: EXEC sp_addsrvrolemember 'имя сервераимя пользователя', 'sysadmin'
GO
Перезапускаем службу и радуемся жизни, не забудьте потом убрать параметр -m в реестре. Вот так вот просто сбросить пароль sa в sql, как встроенными методами так и сторонними.
Прочитано:
6 217
Всякое бывает и всякое не бывает, но лучше иметь проработку на будущее чтобы не метаться потом, с вопросом — А как? Так вот сейчас я разберу давно волновавший меня вопрос, что делать если на сервере базы данных 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:Windowssystem32>net user ekzorchik 712mbddr@ /add
The command completed successfully.
C:Windowssystem32>net localgroup Administrators ekzorchik /add
The command completed successfully.
C:Windowssystem32>exit
Теперь во вкладке Log On свойств службы SQL Server меняем от имени кого будет происходить запуск службы как показано на представленном скриншоте ниже:
This account: .ekzorchik
Password: 712mbddr@
Confirm password: 712mbddr@
Следом последует окно с текстом:
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:Windowssystem32>net stop SQLSERVERAGENT
The SQL Server Agent (MSSQLSERVER) service is stopping..
The SQL Server Agent (MSSQLSERVER) service was stopped successfully.
C:Windowssystem32>net stop MSSQLSERVER
The SQL Server (MSSQLSERVER) service is stopping.
The SQL Server (MSSQLSERVER) service was stopped successfully.
C:Windowssystem32>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)
После чего остановленного сервиса открываю через правый клик его свойства (Properties), тут переключаюсь на вкладку Advanced (Расширенные) и в строке:
Startup Parameters после: -dC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAmaster.mdf;-eC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG;-lC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATAmastlog.ldf
указываю ключ -mSQLCMD
. В итоге должно получиться следующее:
Теперь запускаю службу для применения настроек. Если по службам SQL в оснастке управления все хорошо, служба запустилась то переходим к следующему этапу.
Открываю консоль командной строки с правами администратора:
Start — All Programs — Accessories — запускаем Command Prompt с правами администратора
C:Windowssystem32>sqlcmd
1> create login recovery with password='712mbddr@'
2> go
1> sp_addsrvrolemember 'recovery','sysadmin'
2> go
1> quit
Снова останавливаю сервис SQL Server (MSSQLServer), запускаю свойства, перехожу на вкладку Advanced и убираю добавленный параметр в запуске и запускаю сервис снова.
Теперь пробую авторизоваться
Нажимаю 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…
Нажимаю Connect и вуаля все получилось, как и было задумано.
На заметку: Но все можно проделать и из командной строки:
C:Windowssystem32>net stop mssqlserver
The SQL Server (MSSQLSERVER) service is stopping.
The SQL Server (MSSQLSERVER) service was stopped successfully.
C:Windowssystem32>net start mssqlserver /mSQLCMD
The SQL Server (MSSQLSERVER) service is starting.
The SQL Server (MSSQLSERVER) service was started successfully.
C:Windowssystem32>sqlcmd
1> <я_подключился>
Теперь я еще больше знаю по SQL Server 2008 R2 на всякий непредвиденный случай, вдруг у нас в отделе кто-то возьмет и намеренно все поменяет не предупредив ни кого. Задача поставленная в самом начале данной заметки выполнена. На этом я прощаюсь, с уважением автор блога — Олло Александр aka ekzorchik.
- Remove From My Forums
-
Question
-
Hi All,
Earlier one of my team member has created a user login and password but forgot the password after few days and now we need to know the password of that login. Some of the application are using this login so we can delete and create a new login with
the same name hence is there any possibility or script to find out the password of the existing login.Note: The login is not ‘sa’
Please let us know if any additional information is required.
Really grateful to your interest, time & suggestions on this.
Regards,
Kalyan
—-Learners Curiosity Never Ends—-
Answers
-
IF its a sql login and you have access to the application servers, you could look for it in connection strings on those.
-
Marked as answer by
Tuesday, February 26, 2013 10:02 AM
-
Marked as answer by