В этой статье мы рассмотрим, как сбросить пароль SA (system administrator) в базе данных Microsoft SQL Server 2019/2017/2014/2011. Данная инструкция поможет вам восстановить доступ к базе данных MSSQL, если вы не можете аутентифицироваться с помощью учетной записи sa (пароль sa был забыт/утерян/учетка отключена) или под пользователем Windows (в настройках доступа отсутствуют пользователи с правами администратора MS SQL).
Локальная учетная запись sa имеет максимальные привилегии в MS SQL. В большинстве случаев она отключена, но вы можете включить ее, задать нужный пароль и восстановить доступ к SQL Server.
Для восстановления доступа к базе данных без полной переустановки экземпляра MS SQL (и с потерей базы master), нужно запустить SQL Server в однопользовательском режиме (single-user mode). В этом однопользовательском режиме вы сможете авторизоваться на SQL Server под любой учетной записью с правами локального администратора на компьютере, на котором установлен MS SQL Server. После этого можно сбросить пароль учетной записи sa и/или предоставить административные права нужной ученой записи Windows.
Совет. Напомним, что, начиная с MS SQL Server 2008, роль sysadmin на SQL сервере по-умолчанию не назначается локальной группе администраторов Windows.
Чтобы запустить MS SQL Server в single-user mode, подключитесь к хосту MSSQL под любой учетной записью с правами локального администратора Windows.
- Остановите инстанс SQL Server (в нашем примере имя инстанса MSSQL — MSSQLSERVER) из командной строки
net stop MSSQLSERVER
или с помощью PowerShell:
Get-Service MSSQLSERVER| stop-service
- Откройте редактор реестра (
regedit.exe
) и перейдите в раздел параметров запуска сервиса SQL: HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesMSSQLSERVER; - Измените значение параметра ImagePath, добавив в качестве аргумента sqlservr.exe ключ -m. В нашем примере получилось такое значение:
"C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBinnsqlservr.exe" -sMSSQLSERVER -m
- Запустите службу SQL Server:
net start MSSQLSERVER
- Теперь ваш SQL Server запущен в однопользовательском режиме и позволяет любому члену локальной группы администраторов (или встроенному администратору Windows) подключаться к экземпляру SQL Server с правами sysadmin.
- Запустите SQL Server Management Studio (SSMS) и подключитесь к Database Engine под учетной записью администратора компьютера;
- Перейдите в раздел Security -> Logins и найдите пользователя sa. По умолчанию пользователь sa отключен;
- Откройте его свойства и на вкладке General задайте новый пароль SA. Затем на вкладке Status включите данного пользователя (Login -> Enabled);
- Чтобы разрешить подключаться к MSSQL с помощью локальных учетных записей SQL (в том числе sa), нужно в свойствах сервера на вкладке Security включить режим аутентификации SQL Server and Windows Authentication mode. Иначе при подключении под локальной учетной записью sa будет появляться ошибка:
Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)
- Также в разделе Logins можно добавить нужных пользователей Windows (локальных или доменных) и предоставить им права Server roles -> Sysadmin. Можно предоставить пользователю роль из командной строки sqlcmd:
EXEC sp_addsrvrolemember 'DOMAINUsername', 'sysadmin';)
GO
- Осталось еще раз остановить службу MSSQL, вернуть начальное значение параметра реестра ImagePart, убрав “-m” (
C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBinnsqlservr.exe" -sMSSQLSERVER
); - Запустите службу SQL Server в обычном режиме;
- Теперь вы можете подключиться к SQL серверу под учетной записью sa в режиме SQL Server Authentication или под учетной записью Windows, которой вы предоставили права sysadmin в SQL Server.
Совет. Также вы можете запустить SQL Server в однопользовательском режиме с помощью SQL Server Configuration Manager. Для этого нужно в свойствах нужного инстанса перейти на вкладку Startup Parameters и добавить опцию запуска –m.
Также вы можете использовать командную строку sqlcmd для сброса пароля SA и предоставления доступа к SQL Server.
- Запустите SQL Server в однопользовательском режиме как описано выше;
- Откройте командную строку и подключитесь к серверу SQL:
sqlcmd –S localhost
- Чтобы изменить пароль пользователя SA и включить его, выполните следующие команды T-SQL:
ALTER LOGIN sa enable
GO
ALTER LOGIN sa WITH PASSWORD = 'newsa_pa$$w0rdd1'
GO - Чтобы предоставить права sysadmin в MSSQL для учетной записи Windows (локальной в этом примере), используйте команды:
CREATE LOGIN [sql-srv01user1] FROM WINDOWS
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [sql-srv01user1]
GO
В этой статье мы показали, как восстановить доступ к SQL Server в single user mode. В этом режиме вы можете сбросить пароль sa (и других пользователей SQL), или предоставить права администратора SQL учетным записям Windows. Однопользовательский режим также можно использовать для восстановления базы temdb в MSSql Server.
Обновлено 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, как встроенными методами так и сторонними.
«sa» — это логин пользователя в MS SQL, имеющий по умолчанию самые высокие привилегии, сама учетка локальная, зачастую даже выключенная, но тем не менее часто используемая. Если вы потеряли или забыли пароль от этой учетки «sa», то у вас не будет доступа к управлению вашими БД.
Пароль 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 через ее свойства, для этого щелкаете правым кликом и выбираете свойства из контекстного меню.
На вкладке общие вы увидите, поле для ввода нового пароля, единственное учтите, что если стоит галка Требовать использование политики паролей, вам придется придумать стойкий пароль отвечающий требованиям безопасности, а именно
- Должна быть большая буква в пароле
- Должна быть маленькая буква в пароле
- Должен быть спецсимвол или цифра в пароле
Если галку снять, то можно задать новый пароль и сохранить. Пароль на пользователя 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 Server110ToolsBinnsqlcmd.exe: EXEC sp_addsrvrolemember 'имя сервераимя пользователя', 'sysadmin'
GO
Перезапускаем службу, не забудьте потом убрать параметр -m в реестре. Пароль сброшен на пользователя sa в sql.
Оригинал статьи