Поиск по сайту:

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


В этой статье мы рассмотрим, как сбросить пароль SA (системного администратора) в Microsoft SQL Server 2019/2017/2014/2012. Это руководство поможет вам восстановить доступ к базе данных MSSQL, если вы не можете пройти аутентификацию с помощью

sa

счет (

sa

пароль был забыт/утерян/учетная запись отключена) или как пользователь Windows (если нет пользователей с правами системного администратора MS SQL).

Локальная учетная запись sa — это известная учетная запись администратора в SQL Server. В большинстве случаев он отключен, но вы можете включить его, установить/сбросить пароль и восстановить доступ к вашему SQL-серверу.

Чтобы восстановить доступ к базе данных без полной переустановки экземпляра MS SQL (и при потере master базы данных), необходимо запустить SQL Server в однопользовательском режиме . В этом режиме вы можете войти в SQL Server под любой учетной записью с правами локального администратора на компьютере, на котором установлен MS SQL Server. Затем вы можете сбросить пароль учетной записи sa и/или предоставить административные разрешения определенным учетным записям Windows.

Совет. Начиная с SQL Server 2008, роль системного администратора на сервере SQL по умолчанию не назначается локальной группе администраторов Windows.

Чтобы запустить MS SQL Server в однопользовательском режиме, войдите на хост MSSQL под любой учетной записью с правами локального администратора в Windows.

  1. Остановите экземпляр SQL Server (в нашем примере имя экземпляра MSSQL — MSSQLSERVER) из командной строки.

    net stop MSSQLSERVER

    или используя PowerShell:

    Get-Service MSSQLSERVER| Stop-Service

  2. Откройте редактор реестра (

    regedit.exe

    ) и перейдите к разделу реестра службы SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER;

  3. Измените значение параметра ImagePath, добавив параметр -m в качестве аргумента sqlservr.exe. Например, установите следующую строку запуска:

    "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m 

  4. Запустите SQL-сервер:

    net start MSSQLSERVER
  5. Ваш SQL Server теперь работает в однопользовательском режиме и позволяет любому члену локальной группы администраторов (или встроенному администратору Windows) подключаться к экземпляру SQL Server с привилегиями системного администратора;

  6. Откройте SQL Server Management Studio (SSMS) и подключитесь к ядру базы данных SQL Server, используя учетную запись, которая является членом локальной группы администраторов;

  7. Перейдите в раздел Безопасность -> Логин и найдите пользователя sa. Пользователь sa отключен по умолчанию;

  8. Откройте его свойства, перейдите на вкладку Общие и установите новый пароль SA. Затем включите эту учетную запись на вкладке Статус (Вход -> Включено);

  9. Чтобы разрешить подключение к MSSQL под локальными учетными записями SQL (в том числе sa), необходимо включить Режим проверки подлинности SQL Server и Windows в свойствах сервера на вкладке Безопасность. В противном случае при подключении под локальной учетной записью sa появится ошибка:

    Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

  10. Также в разделе Логин вы можете добавить необходимых пользователей Windows (локальных или доменных) и назначить ему роль Сисадмина (в разделе Роли сервера). вкладка). Или вы можете добавить роль пользователю из командной строки sqlcmd:

    EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
    GO

  11. Осталось снова остановить службу MSSQL, вернуть исходное значение параметра реестра ImagePart, удалив ключ «-m» (

    C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER

    );

  12. Запустите службу SQL Server в обычном режиме;

  13. Теперь вы можете подключиться к SQL-серверу под учетной записью sa в режиме проверки подлинности SQL Server или под учетной записью пользователя Windows, которой вы предоставили права системного администратора в SQL Server.

Совет. Вы можете запустить SQL Server в однопользовательском режиме с помощью диспетчера конфигурации SQL Server. Для этого перейдите на вкладку Параметры запуска в свойствах необходимого экземпляра SQL и добавьте параметр запуска -m.

Кроме того, вы можете использовать инструмент командной строки sqlcmd, чтобы сбросить пароль SA и предоставить доступ к SQL Server:

  1. Запустите SQL Server в однопользовательском режиме, как описано выше;

  2. Откройте командную строку и подключитесь к экземпляру SQL Server:

    sqlcmd -S localhost
  3. Чтобы изменить пароль пользователя SA и включить его, выполните следующие команды T-SQL:

    ALTER LOGIN sa enable
    GO
    ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
    GO
  4. Чтобы предоставить права системного администратора в MSSQL для учетной записи Windows (в данном примере локального пользователя), используйте команды:

    CREATE LOGIN [mun-sql01\jsmith] FROM WINDOWS
    GO
    ALTER SERVER ROLE sysadmin ADD MEMBER [mun-sql01\jsmith]
    GO

В этой статье мы показали, как восстановить доступ к SQL Server в однопользовательском режиме. В этом режиме вы можете сбросить пароль sa (и других пользователей SQL) или предоставить права администратора SQL учетным записям пользователей Windows. Однопользовательский режим также можно использовать для восстановления базы данных temdb на сервере MSSQL.

Статьи по данной тематике