В практике администратора 1С нередко возникает ситуация, когда доступ к учетной записи sa (System Administrator) в MS SQL Server оказывается утерян. Это может произойти при смене ответственного персонала, после длительного перерыва в обслуживании сервера или в случаях, когда пароль был сохранен в настройках кластера 1С, но забыт сотрудниками. Рассмотрим подробно, как решить эту проблему, не прибегая к переустановке SQL-сервера, и разберем сопутствующие технические нюансы.
Первым делом проанализируем самый простой вариант. Если SQL Server настроен в режиме смешанной авторизации (Mixed Mode), что является стандартом для работы с 1С, то, скорее всего, администраторы Windows имеют право входа в SQL Server с правами sysadmin.
Разберем по шагам этот процесс:
sa, откроем его свойства (Properties) и просто зададим новый пароль.Этот метод работает в большинстве случаев, если при установке SQL Server группа локальных администраторов была добавлена в список администраторов БД.
Если Windows-авторизация не дает прав системного администратора, воспользуемся официальным методом восстановления доступа через запуск службы в однопользовательском режиме. В этом режиме любой член локальной группы администраторов на сервере автоматически получает права sysadmin.
Рассмотрим алгоритм действий подробнее:
services.msc или через SQL Server Configuration Manager. Также можно воспользоваться командой в консоли:
net stop MSSQLSERVER
-m. Для этого откроем командную строку от имени администратора и перейдем в каталог с исполняемыми файлами SQL (путь может отличаться в зависимости от версии):
cd "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn"
sqlservr.exe -m
sqlcmd для сброса пароля или добавления нового администратора:
sqlcmd -S .
CREATE LOGIN [YourDomain\YourUser] FROM WINDOWS;
ALTER SERVER ROLE [sysadmin] ADD MEMBER [YourDomain\YourUser];
GO
sa:
ALTER LOGIN sa WITH PASSWORD = 'NewStrongPassword123';
GO
sqlservr.exe (нажав Ctrl+C) и запустим службу SQL Server в обычном режиме через net start MSSQLSERVER.Иногда полезно знать, что служба SQL Server часто запускается под учетной записью LocalSystem. Мы можем использовать это, чтобы получить доступ. Проанализируем ситуацию: если запустить SSMS от имени системы, мы сможем войти в SQL без знания пароля sa.
Для реализации этого метода можно воспользоваться утилитой PsExec из пакета Sysinternals. Выполним команду:
psexec -i -s "C:\Path\To\Ssms.exe"
Запущенная таким образом среда Management Studio позволит управлять пользователями SQL так же, как если бы вы знали пароль администратора.
Выясним причину, почему 1С продолжает работать, даже если мы не знаем пароль. Сервер 1С:Предприятие хранит параметры подключения к базам данных в зашифрованном виде.
Основные моменты, которые стоит знать:
.lst (например, 1CV8Reg.lst) в каталоге регистрации кластера (обычно это C:\Program Files\1cv8\srvinfo).sa на уровне SQL Server методами, описанными выше, вам обязательно нужно будет обновить его в настройках каждой информационной базы через Консоль администрирования серверов 1С, иначе подключение к базам пропадет.Проанализируем ситуацию со стороны безопасности. Использование sa для повседневной работы 1С крайне не рекомендуется. Рассмотрим почему:
sa имеет полные права на весь сервер, включая системные настройки и другие базы данных. Для работы 1С достаточно прав db_owner на конкретную БД.sa.Вместо этого рекомендуем создать отдельного пользователя SQL специально для 1С. Разберем пример создания такого пользователя через SQL-скрипт:
-- Создаем логин на уровне сервера
CREATE LOGIN [User1C] WITH PASSWORD = 'SafePassword_123', CHECK_POLICY = OFF;
GO
-- Назначаем роль для работы с процессами (необходимо для 1С)
ALTER SERVER ROLE [processadmin] ADD MEMBER [User1C];
GO
-- В конкретной базе данных назначаем владельца
USE [Имя_Вашей_Базы_1С];
CREATE USER [User1C] FOR LOGIN [User1C];
ALTER ROLE [db_owner] ADD MEMBER [User1C];
GO
Подводя итог, можно сказать, что утеря пароля sa не является катастрофой. Используя Windows-авторизацию или однопользовательский режим, можно восстановить контроль над сервером за считанные минуты. Однако после восстановления доступа крайне желательно пересмотреть политику безопасности: создать именных пользователей для администраторов и отдельную ограниченную учетную запись для службы 1С.