Categories: SQL Server

Как сбросить пароль SA в Microsoft SQL Server?

В этой статье мы рассмотрим, как сбросить пароль 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.

  1. Остановите инстанс SQL Server (в нашем примере имя инстанса MSSQL — MSSQLSERVER ) из командной строки net stop MSSQLSERVER или с помощью PowerShell: Get-Service MSSQLSERVER| stop-service
  2. Откройте редактор реестра ( regedit.exe ) и перейдите в раздел параметров запуска сервиса SQL: HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesMSSQLSERVER ;
  3. Измените значение параметра ImagePath , добавив в качестве аргумента sqlservr.exe ключ -m . В нашем примере получилось такое значение: "C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBinnsqlservr.exe" -sMSSQLSERVER -m
  4. Запустите службу SQL Server: net start MSSQLSERVER
  5. Теперь ваш SQL Server запущен в однопользовательском режиме и позволяет любому члену локальной группы администраторов (или встроенному администратору Windows ) подключаться к экземпляру SQL Server с правами sysadmin.
  6. Запустите SQL Server Management Studio (SSMS) и подключитесь к Database Engine под учетной записью администратора компьютера;
  7. Перейдите в раздел Security -> Logins и найдите пользователя sa . По умолчанию пользователь sa отключен;
  8. Откройте его свойства и на вкладке General задайте новый пароль SA. Затем на вкладке Status включите данного пользователя (Login -> Enabled);
  9. Чтобы разрешить подключаться к MSSQL с помощью локальных учетных записей SQL (в том числе sa), нужно в свойствах сервера на вкладке Security включить режим аутентификации SQL Server and Windows Authentication mode . Иначе при подключении под локальной учетной записью sa будет появляться ошибка:
     Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

  10. Также в разделе Logins можно добавить нужных пользователей Windows (локальных или доменных) и предоставить им права Server roles -> Sysadmin . Можно предоставить пользователю роль из командной строки sqlcmd:
    EXEC sp_addsrvrolemember 'DOMAINUsername', 'sysadmin';)
    GO

  11. Осталось еще раз остановить службу MSSQL, вернуть начальное значение параметра реестра ImagePart, убрав “-m” ( C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBinnsqlservr.exe" -sMSSQLSERVER );
  12. Запустите службу SQL Server в обычном режиме;
  13. Теперь вы можете подключиться к SQL серверу под учетной записью sa в режиме SQL Server Authentication или под учетной записью Windows, которой вы предоставили права sysadmin в SQL Server.
Совет . Также вы можете запустить SQL Server в однопользовательском режиме с помощью SQL Server Configuration Manager. Для этого нужно в свойствах нужного инстанса перейти на вкладку Startup Parameters и добавить опцию запуска –m .

Также вы можете использовать командную строку sqlcmd для сброса пароля SA и предоставления доступа к SQL Server.

  1. Запустите SQL Server в однопользовательском режиме как описано выше;
  2. Откройте командную строку и подключитесь к серверу SQL: sqlcmd –S localhost
  3. Чтобы изменить пароль пользователя SA и включить его, выполните следующие команды T-SQL: ALTER LOGIN sa enable
    GO
    ALTER LOGIN sa WITH PASSWORD = 'newsa_pa$$w0rdd1'
    GO
  4. Чтобы предоставить права 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 .

admin

Share
Published by
admin

Recent Posts

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

7 дней ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago