Забыл пароль sa в MS SQL Server: сброс пароля через однопользовательский режим (Single-User Mode)
- Утерян пароль учетной записи системного администратора
saв MS SQL Server. - Учетные записи Windows не имеют прав
sysadminв SQL Server Management Studio (SSMS). - Ошибка
Login failed for user 'sa' (Error 18456)при попытке подключить новую базу 1С.
Шаг 1. Остановка службы SQL Server
- На сервере нажмите Win + R, введите
services.mscи нажмите Enter. - Найдите службу SQL Server (MSSQLSERVER) или SQL Server (SQLEXPRESS).
- Нажмите по ней правой кнопкой мыши и выберите «Остановить».
Шаг 2. Запуск SQL Server в однопользовательском режиме (-m)
- Запустите командную строку (cmd) от имени Администратора.
- Запустите службу SQL Server с флагом
-m(параметр запускает SQL в режиме обслуживания, разрешая любому локальному администратору Windows полные права sysadmin):
net start MSSQLSERVER /m"SQLCMD"(Если у вас именованный экземпляр SQLEXPRESS, команда: net start MSSQL$SQLEXPRESS /m"SQLCMD").
Шаг 3. Сброс пароля sa через утилиту sqlcmd
- В той же командной строке подключитесь к SQL Server утилитой
sqlcmd:
sqlcmd -S localhost -E- Введите по очереди следующие SQL-команды для задания нового пароля пользователю
saи разблокировки учетной записи:
ALTER LOGIN sa WITH PASSWORD = 'ВашНовыйСложныйПароль!123', CHECK_POLICY = OFF;
ALTER LOGIN sa ENABLE;
GO- Введите команду
QUITдля выхода из sqlcmd.
Шаг 4. Перезапуск SQL Server в обычном режиме
net stop MSSQLSERVER
net start MSSQLSERVERТеперь запустите SQL Server Management Studio и авторизуйтесь под пользователем sa с новым установленным паролем!
Частые вопросы (FAQ)
Почему при запуске sqlcmd в режиме -m возникает ошибка 'Login failed'?
В однопользовательском режиме разрешено только ОДНО подключение к серверу. Убедитесь, что служба SQL Server Agent или SSMS не заняли этот единственный слот подключения первыми.
Как проверить, включена ли смешанная аутентификация (Mixed Mode)?
В SSMS нажмите правой кнопкой на сервер -> Properties -> Security -> должен быть выбран пункт 'SQL Server and Windows Authentication mode'.
Можно ли этим способом дать права sysadmin своей доменной учетной записи?
Да. В sqlcmd выполните: CREATE LOGIN [DOMEN\User] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [DOMEN\User]; GO.
Где в реестре переключить Mixed Authentication, если SSMS недоступен?
В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQLServer измените параметр LoginMode со значения 1 (только Windows) на значение 2 (Смешанный режим).