При администрировании сервера 1С:Предприятие системные администраторы нередко сталкиваются с ситуацией, когда доступ к кластеру серверов имеется, но открыть свойства конкретной информационной базы или удалить её через стандартную консоль управления кластером не удается. Консоль требует ввода логина и пароля администратора информационной базы, которые были утеряны или не переданы предыдущим ответственным сотрудником. Чтобы избежать утери учетных данных, можно использовать расширение для учета и сохранения паролей пользователей 1С.
В этом руководстве мы подробно разберем механизм хранения настроек кластера 1С, выясним причину возникновения ошибки аутентификации и рассмотрим по шагам два надежных способа решения задачи: быстрое ручное удаление неактуальной базы из реестра кластера и временный сброс учетных записей через СУБД для полноценного управления базой.
Проанализируем архитектуру разграничения прав в клиент-серверном варианте 1С:Предприятие. В системе разделены два уровня аутентификации:
Администрирование или ПолныеПрава).Когда мы пытаемся открыть окно свойств базы в утилите администрирования кластера или удалить её штатной командой, сервер 1С обращается к самой базе данных для проверки прав. Если в базе заведен хотя бы один пользователь с административными правами, платформа запрашивает его учетные данные. Если пароль неизвестен, штатный интерфейс блокирует любые операции изменения и удаления этой базы.
Выясним, где платформа хранит список зарегистрированных информационных баз. Вопреки частому заблуждению, консоль кластера не использует системный реестр Windows. Вся конфигурация кластера содержится в текстовых файлах специального формата в служебном каталоге сервера 1С.
По умолчанию каталог данных кластера (параметр srvinfo) расположен по пути:
C:\Program Files\1cv8\srvinfo\reg_1541\ (для 64-разрядной службы сервера 1С)
или
C:\Program Files (x86)\1cv8\srvinfo\reg_1541\ (для 32-разрядной службы).
Основной список информационных баз и их параметров хранится в файле 1cv8reg.lst (для версий 8.2 и 8.3) или 1CV8Clst.lst (для платформы 8.1). Кроме того, для каждой базы в каталоге reg_1541 создается отдельная подпапка с уникальным идентификатором (GUID), где хранятся журнал регистрации, настройки блокировок и индексы полнотекстового поиска. Для проверки безопасности учетных данных СУБД в этих файлах можно использовать инструмент аудита паролей SQL из файлов кластера 1С.
Рассмотрим самый быстрый и безопасный способ удаления неактуальной базы из консоли, который не требует взлома структуры данных или знания паролей.
Разберем процесс по шагам:
services.msc), найдем службу 1C:Enterprise 8.3 Server Agent (имя службы ragent) и остановим её. Это необходимо, чтобы файл конфигурации не был заблокирован процессом и сервер не перезаписал изменения из оперативной памяти при завершении работы.C:\Program Files\1cv8\srvinfo\reg_1541\ и обязательно создадим резервную копию файла 1cv8reg.lst или всей папки srvinfo.1cv8reg.lst в текстовом редакторе с поддержкой кодировки UTF-8 (например, в Notepad++).Name). Описание базы представляет собой структуру в фигурных скобках, содержащую параметры подключения к СУБД, имя базы на SQL-сервере и уникальный GUID.reg_1541 найдем подпапку с именем, совпадающим с ранее скопированным GUID базы, и удалим её. Это очистит остаточный кэш и журналы регистрации.1C:Enterprise 8.3 Server Agent. Откроем консоль администрирования кластера и убедимся, что удаленная база исчезла из списка.SQL Server Management Studio (SSMS), подключимся к экземпляру MS SQL Server и удалим саму базу данных с дискового массива.Если перед удалением базы необходимо войти внутрь, проверить данные или выгрузить резервную копию через конфигуратор, рассмотрим способ временного отключения авторизации на уровне СУБД MS SQL.
Проанализируем структуру хранения пользователей: информация об учетных записях 1С содержится в системной таблице v8users, а связь с правами и идентификаторами — в таблице Params в записи users.usr.
Разберем по шагам порядок действий в SQL Server Management Studio:
SSMS, выберем нужную базу данных и откроем окно нового запроса (New Query).v8users во временное имя:
EXEC sp_rename 'v8users', 'v8users_temp';
Params:
UPDATE Params
SET FileName = 'users.usr_temp'
WHERE FileName = 'users.usr';
Администрирование — Пользователи) и создадим нового администратора с известным паролем.
EXEC sp_rename 'v8users_temp', 'v8users';
UPDATE Params
SET FileName = 'users.usr'
WHERE FileName = 'users.usr_temp';
Посмотрим на возможности стандартной консольной утилиты rac, входящей в комплект поставки платформы 1С. Для удаления базы предусмотрена команда:
rac infobase --cluster=<ИдентификаторКластера> drop --infobase=<ИдентификаторБазы> --drop-database
Однако важно учитывать: если в базе данных зарегистрирован администратор, утилита rac также выдаст ошибку проверки прав и потребует обязательного указания параметров --ib-user и --ib-pwd. Поэтому в условиях, когда пароль полностью утерян, самым надежным способом остается редактирование файла 1cv8reg.lst при остановленной службе сервера либо сброс пользователей через SQL.
Таким образом, мы рассмотрели все доступные и безопасные варианты решения проблемы. Выбор конкретного метода зависит от того, требуется ли вам предварительный доступ к содержимому базы перед её окончательным удалением.