Подключение к SQL Server в случае, если доступ системных администраторов заблокирован
В этой статье описывается, как восстановить доступ с правами системного администратора к ядру СУБД SQL Server, если он был случайно заблокирован. Системный администратор может утратить доступ к экземпляру SQL Server по одной из следующих причин:
- по ошибке удалены все члены предопределенной роли сервера sysadmin;
- по ошибке удалены все группы Windows, которые являлись членами предопределенной роли сервера sysadmin;
- имена входа, являющиеся членами предопределенной роли сервера sysadmin, принадлежат лицам, которые покинули компанию или недоступны;
- Учетная sa запись отключена или никто не знает пароль.
Решение
Чтобы устранить проблему с доступом, рекомендуется запустить экземпляр SQL Server в однопользовательском режиме. Этот режим не позволит устанавливать другие подключений при попытке восстановить доступ. Вы можете подключиться к экземпляру SQL Server и добавить имя входа в роль сервера sysadmin. Подробные инструкции по решению этой проблемы приведены в этом разделе.
Экземпляр SQL Server можно запустить в однопользовательском режиме с -m помощью командной строки или -f параметров. Затем любой член локальной группы администраторов компьютера может подключиться к экземпляру SQL Server в качестве члена предопределенных ролей сервера sysadmin .
При запуске экземпляра в однопользовательском режиме остановите службу агента SQL Server. В противном случае агент SQL Server может сначала подключиться, принимая только доступное подключение к серверу и блокируя вход.
Кроме того, неизвестное клиентское приложение может воспользоваться единственным доступным подключением, прежде чем вы сможете выполнить вход. Чтобы исключить возникновение этой ситуации, используйте параметр -m , за которым следует имя приложения, что позволит ограничить подключения одним подключением из определенного приложения. Например, запуск SQL Server с -mSQLCMD ограничениями подключений к одному соединению, которое идентифицирует себя как клиентская программа sqlcmd . Чтобы подключиться через редактор запросов в Management Studio, используйте -m»Microsoft SQL Server Management Studio — Query» .
Не используйте -m с именем приложения в качестве средства безопасности. Клиентские приложения предоставляют имя приложения в параметрах строки подключения и могут легко указать ложное имя.
В следующей таблице приведены различные способы запуска экземпляра в однопользовательском режиме в командной строке.
| Вариант | Description | Варианты использования |
|---|---|---|
| -m | Ограничение подключений одним подключением | Если другие пользователи не пытаются подключиться к экземпляру или вы не знаете имя приложения, которое используется для подключения к экземпляру. |
| -mSQLCMD | Разрешает только одно соединение, которое должно идентифицироваться как клиентская программа sqlcmd. | Если вы планируете подключиться к экземпляру с помощью sqlcmd и хотите запретить другим приложениям использовать единственное доступное подключение. |
| -m»Microsoft SQL Server Management Studio — Query» | Разрешает только одно соединение, которое должно идентифицироваться как приложение Microsoft SQL Server приложении Management Studio — Query. | Если вы планируете подключиться к экземпляру через редактор запросов в Management Studio, и вы хотите запретить другим приложениям принимать единственное доступное подключение. |
| -f | Разрешает только одно соединение и запускает экземпляр в минимальной конфигурации. | Когда запуску препятствует какая-либо другая конфигурация. |
Пошаговые инструкции
Пошаговые инструкции по запуску SQL Server в однопользовательском режиме см. в статье «Запуск SQL Server в режиме однопользовательского пользователя».
С помощью PowerShell
Вариант 1. Выполнение шагов непосредственно в исполняемой записной книжке с помощью Azure Data Studio
Прежде чем пытаться открыть эту записную книжку, убедитесь, что на локальном компьютере установлен экземпляр Azure Data Studio. Сведения об установке Azure Data Studio см. в статье о том, как установить Azure Data Studio.
Вариант 2. Выполнение шага вручную
- Открытие команды Windows PowerShell от имени администратора
- Настройте имя службы и экземпляр SQL Server, а также переменные входа Windows. Замените их значениями в соответствии с используемой средой. Если у вас есть экземпляр по умолчанию, используйте MSSQLSERVER без имени экземпляра.
$service_name = "MSSQL`$instancename" $sql_server_instance = "machine_name\instance" $login_to_be_granted_access = "[CONTOSO\PatK]"
net stop $service_name
Заметка Обязательно используйте для SQLCMD верхний регистр.
Если у вас есть экземпляр по умолчанию, используйте MSSQLSERVER без имени экземпляра.
net start $service_name /f /mSQLCMD
sqlcmd.exe -E -S $sql_server_instance -Q "CREATE LOGIN $login_to_be_granted_access FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER $login_to_be_granted_access; "
Заметка При возникновении следующей ошибки необходимо убедиться, что другие программы SQLCMD не подключены к SQL Server:
Sqlcmd: Error: Microsoft ODBC Driver X for SQL Server : Login failed for user ‘CONTOSO\BobD’. Reason: Server is in single user mode. Only one administrator can connect at this time..
-
Предоставьте членам роли sysadmin имя входа SQL. Выполните следующий код, чтобы создать новое имя входа проверки подлинности SQL Server, являющееся членом предопределенных ролей сервера sysadmin . Замените ?j8:z$G=JE9 надежный пароль по вашему выбору. Если у вас есть экземпляр по умолчанию, используйте имя сервера.
$strong_password = "j8:zG=J?E9" sqlcmd.exe -E -S $sql_server_instance -Q "CREATE LOGIN TempLogin WITH PASSWORD = '$strong_password'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin; "
$strong_password = "j8:zG=J?E9" sqlcmd.exe -E -S $sql_server_instance -Q "ALTER LOGIN sa WITH PASSWORD = $strong_password; "
net stop $service_name net start $service_name
Использование диспетчера конфигурации SQL Server и Management Studio (SSMS)
- Экземпляр SQL Server выполняется в Windows 8 или более поздней версии. Небольшие изменения для предыдущих версий SQL Server или Windows приведены там, где применимо.
- СРЕДА SQL Server Management Studio установлена на компьютере.
Следуйте этим инструкциям, выполнив вход в систему Windows в качестве члена локальной группы администраторов.
- В меню «Пуск Windows» щелкните правой кнопкой мыши значок диспетчера конфигурации SQL Server и выберите «Запуск от имени администратора», чтобы передать учетные данные администратора в Configuration Manager.
- В диспетчере конфигурации SQL Server на панели слева выберите Службы SQL Server. На панели справа найдите экземпляр SQL Server. (Экземпляр SQL Server по умолчанию включает в себя (MSSQLSERVER) после имени компьютера. Именованные экземпляры появляются в верхнем регистре с тем же названием, что и в списке «зарегистрированные серверы»). Щелкните правой кнопкой мыши экземпляр SQL Server и выберите Свойства.
- На вкладке Параметры запуска в поле Укажите параметр запуска введите -m и щелкните Добавить. (Это дефис, затем буква «m» в нижнем регистре.) Для некоторых более ранних версий SQL Server нет вкладки «Параметры запуска». В этом случае на вкладке «Дополнительно» дважды щелкните «Параметры запуска». Параметры откроются в маленьком окне. Не изменяйте существующие параметры. В самом конце добавьте новый параметр ;-m и щелкните ОК. (Это точка с запятой, затем дефис, затем буква «m» в нижнем регистре.)
- Щелкните ОК, а после сообщения о перезагрузке щелкните правой кнопкой мыши имя сервера и выберите Перезапустить.
- После перезапуска SQL Server сервер будет находиться в однопользовательском режиме. Убедитесь, что агент SQL Server не выполняется. Если он был запущен, то он займет ваше единственное соединение.
- В меню «Пуск Windows» щелкните правой кнопкой мыши значок для Management Studio и выберите «Запуск от имени администратора«. Это передает учетные данные администратора в SSMS. В более ранних версиях Windows вариант Запуск от имени администратора появляется в виде подменю. В некоторых конфигурациях SSMS пытается выполнить несколько подключений. Несколько подключений завершаются ошибкой, так как SQL Server находится в однопользовательском режиме. Выполните одно из следующих действий, соответствующее вашему сценарию.
- Подключитесь с помощью обозревателя объектов, используя проверку подлинности Windows (которая включает учетные данные администратора). Разверните Безопасность, затем Имена входаи дважды щелкните имя входа. На странице Роли сервера выберите sysadmin и щелкните ОК.
- Вместо соединения с помощью обозревателя объектов подключитесь с помощью окна запросов, используя проверку подлинности Windows (которая включает учетные данные администратора). (Подключиться подобным образом можно, только если подключение не выполнено с помощью обозревателя объектов.) Выполните следующий код, чтобы добавить новое имя входа для проверки подлинности Windows, которое является членом предопределенной роли сервера sysadmin. В следующем примере создается пользователь с именем CONTOSO\PatK .
CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];CREATE LOGIN TempLogin WITH PASSWORD = '************'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;Предупреждение Замените ************ надежным паролем.
ALTER LOGIN sa WITH PASSWORD = '************';Предупреждение Замените ************ надежным паролем.
Теперь можно подключиться к одной из учетных записей, которая имеет фиксированную роль сервера sysadmin.
Как сбросить пароль SA в Microsoft SQL Server?
21.12.2021

itpro

SQL Server

комментариев 5
В этой статье мы рассмотрим, как сбросить пароль 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_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER;
- Измените значение параметра ImagePath, добавив в качестве аргумента sqlservr.exe ключ -m. В нашем примере получилось такое значение: «C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.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 ‘DOMAIN\Username’, ‘sysadmin’;)
GO
- Осталось еще раз остановить службу MSSQL, вернуть начальное значение параметра реестра ImagePart, убрав “-m” ( C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.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’
В этой статье мы показали, как восстановить доступ к SQL Server в single user mode. В этом режиме вы можете сбросить пароль sa (и других пользователей SQL), или предоставить права администратора SQL учетным записям Windows. Однопользовательский режим также можно использовать для восстановления базы temdb в MSSql Server.
Меняем пароль sa в sql


Всем привет, сегодня расскажу как изменить или сбросить пароль sa sql сервера. Напомню sa это логин пользователя в MS SQL, имеющий по умолчанию самые высокие привилегии, сама учетка локальная, зачастую даже выключенная, но тем не менее часто используемая. Может получиться такая ситуация, что вы забыли от нее пароль и тем самым потеряли доступ к базам данных, сегодня вы научитесь это обходить и восстанавливать доступ до ваших БД.
И так у вас есть MS SQL, как установить sql я уже рассказывал, кто не знает посмотрите. У вас задача сменить пароль для пользователя sa sql.
Пароль sa по умолчанию
Напомню пароль sa по умолчанию как ни странно sa
Единственное требование, вы везде должны быть локальным администратором
Сменить пароль sa в sql через графический интерфейс
Начнемс, откройте пуск и идите по пути Все программы > Microsoft SQL Server 2012 R2 > Среда SQL Server Management Studio


Не важно какой способ вы выбрали эффект будет один и тот же у вас откроется 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 через командную строку воспользуйтесь вот такими командами.

Далее вводите команду
osql -S имя сервера-E
Если вылезет сообщение Password validation failed. The password does not meet Windows policy requirements because it is too short. То задайте более строгий пароль.

Все после этого вы сбросите пароль sa в sql.
Еще вариант использования osql это вот так

cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn
затем мы пытаемся подключиться под доверенной учетной записей ОС
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 Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA и открываем master.mdf

теперь, чтобы сбросить пароль sa в sql, выберите его и нажмите Reset.

Сменить пароль sa в монопольном режиме
Есть еще четвертый способ поменять пароль от sa, и заключается он в запуске MS SQL в однопользовательском режиме (single-user mode). Что нам потребуется.
Первое это останавливаем MS SQL Server, можно через службы, а можно и из командной строки
net stop MSSQLSERVER


Теперь вам нужно задать параметр в строке ImagePath -m как раз и будет говорить об однопользовательском режиме. У меня получилось вот так
«C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\sqlservr.exe» -m -s MSSQLSERVER

Теперь запускаете MS SQL командой
net start MSSQLSERVER
Теперь SQL запущен в однопользовательском режиме и позволяет любому члену локальной группы администраторов компьютера подсоединяться к экземпляру SQL Server с правами sysadmin, но нужно SQL об этом сказать. Посмотреть режим работы можно в свойствах службы.

В командной строке пишем
cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn
sqlcmd.exe: EXEC sp_addsrvrolemember ‘имя сервера\имя пользователя’, ‘sysadmin’

Перезапускаем службу и радуемся жизни, не забудьте потом убрать параметр -m в реестре. Вот так вот просто сбросить пароль sa в sql, как встроенными методами так и сторонними.
Популярные Похожие записи:
Настройка пароля на Digi AnywhereUSB
Ошибка System Chassis 1 Chassis intro на ESXI хосте- Как массово поменять пароль локального администратора в домене
- Ошибка someone is currently logged into the APC
База данных диспетчера учетных записей на сервере не содержит записи
Как открыть PowerShell, все методы
Если нужно восстановить пароль SA на Microsoft SQL Server
: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/users/d/dm9/domains/mokshin.su/includes/unicode.inc on line 311.
Опубликовано d.mokshin в чтв, 11/06/2015 — 17:03.
Случается такое — нужен администраторский доступ к SQL серверу, но почему-то забыл или и не знал пароль SA.
Если есть администраторские права в системе то всё решается легко и легально 🙂
Для начала нужно остановить службу SQL Server (MSSQLSERVER).
Затем запустить SQL Server в single user режиме — из командной строки (скорее всего понадобится запустить от имени администратора) с ключом -m:
sqlservr.exe -m
При запуске SQL Server напишет много всякого в окне командной строки.
Запускаем еще одну командную строку, и в ней — клиента командной строки SQL Server:
sqlcmd
Наша цель: создать нового пользователя с правами администратора, например sysadm с паролем sysadmpwd
CREATE LOGIN sysadm WITH PASSWORD = ‘sysadmpwd’
GO
sp_addsrvrolemember ‘sysadm’, ‘sysadmin’
GO
И в первом окне командной строки — где запущен SQL Server — завершаем работу SQL сервера — можно нажать Ctrl-C, и на запрос об останове службы ответить утвердительно.
После этого запускаем службу SQL Server (MSSQLSERVER) в обычном режиме (через оснастку Службы, например). Подключаемся к серверу с помощью SQL Server Management Studio под новым пользователем SQL Server (sysadm/sysadmpwd) и меняем пароль SA на нужный нам.
- Блог пользователя d.mokshin
- Добавить комментарий
