Как удалить базу из кластера серверов 1С, если забыт пароль администратора базы

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При администрировании сервера 1С:Предприятие системные администраторы нередко сталкиваются с ситуацией, когда доступ к кластеру серверов имеется, но открыть свойства конкретной информационной базы или удалить её через стандартную консоль управления кластером не удается. Консоль требует ввода логина и пароля администратора информационной базы, которые были утеряны или не переданы предыдущим ответственным сотрудником. Чтобы избежать утери учетных данных, можно использовать расширение для учета и сохранения паролей пользователей 1С.

В этом руководстве мы подробно разберем механизм хранения настроек кластера 1С, выясним причину возникновения ошибки аутентификации и рассмотрим по шагам два надежных способа решения задачи: быстрое ручное удаление неактуальной базы из реестра кластера и временный сброс учетных записей через СУБД для полноценного управления базой.

Почему консоль кластера запрашивает пароль базы данных

Проанализируем архитектуру разграничения прав в клиент-серверном варианте 1С:Предприятие. В системе разделены два уровня аутентификации:

  1. Администратор кластера серверов: управляет общими ресурсами, рабочими процессами, требованиями назначения функциональности и списком баз.
  2. Администратор информационной базы: пользователь внутри конкретной базы с полными административными правами (роль Администрирование или ПолныеПрава).

Когда мы пытаемся открыть окно свойств базы в утилите администрирования кластера или удалить её штатной командой, сервер 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С.

Способ 1: Ручное удаление информационной базы из конфигурации кластера

Рассмотрим самый быстрый и безопасный способ удаления неактуальной базы из консоли, который не требует взлома структуры данных или знания паролей.

Разберем процесс по шагам:

  1. Остановка службы сервера 1С. Откроем оснастку управления службами Windows (services.msc), найдем службу 1C:Enterprise 8.3 Server Agent (имя службы ragent) и остановим её. Это необходимо, чтобы файл конфигурации не был заблокирован процессом и сервер не перезаписал изменения из оперативной памяти при завершении работы.
  2. Создание резервной копии. Перейдем в каталог C:\Program Files\1cv8\srvinfo\reg_1541\ и обязательно создадим резервную копию файла 1cv8reg.lst или всей папки srvinfo.
  3. Редактирование файла настроек. Откроем файл 1cv8reg.lst в текстовом редакторе с поддержкой кодировки UTF-8 (например, в Notepad++).
  4. Поиск блока нужной базы. Выполним поиск по названию удаляемой базы (параметр Name). Описание базы представляет собой структуру в фигурных скобках, содержащую параметры подключения к СУБД, имя базы на SQL-сервере и уникальный GUID.
  5. Удаление секции базы. Аккуратно выделим и удалим блок параметров, относящийся к удаляемой базе. Крайне важно сохранить общую целостность структуры фигурных скобок и запятых между соседними блоками баз. Перед удалением скопируем GUID базы (он указан в начале блока).
  6. Очистка кэша и служебных файлов. В каталоге reg_1541 найдем подпапку с именем, совпадающим с ранее скопированным GUID базы, и удалим её. Это очистит остаточный кэш и журналы регистрации.
  7. Запуск службы 1С. Запустим службу 1C:Enterprise 8.3 Server Agent. Откроем консоль администрирования кластера и убедимся, что удаленная база исчезла из списка.
  8. Удаление базы на сервере СУБД. Откроем SQL Server Management Studio (SSMS), подключимся к экземпляру MS SQL Server и удалим саму базу данных с дискового массива.

Способ 2: Сброс учетных записей пользователей через MS SQL

Если перед удалением базы необходимо войти внутрь, проверить данные или выгрузить резервную копию через конфигуратор, рассмотрим способ временного отключения авторизации на уровне СУБД MS SQL.

Проанализируем структуру хранения пользователей: информация об учетных записях 1С содержится в системной таблице v8users, а связь с правами и идентификаторами — в таблице Params в записи users.usr.

Разберем по шагам порядок действий в SQL Server Management Studio:

  1. Откроем SSMS, выберем нужную базу данных и откроем окно нового запроса (New Query).
  2. Выполним переименование таблицы учетных записей v8users во временное имя: EXEC sp_rename 'v8users', 'v8users_temp';
  3. Выполним изменение имени служебного файла пользователей в системной таблице Params:
    
    UPDATE Params
    SET FileName = 'users.usr_temp'
    WHERE FileName = 'users.usr';
    
  4. Запустим конфигуратор 1С или режим предприятия для этой базы. Система не обнаружит списка пользователей и выполнит вход без запроса логина и пароля с полными правами.
  5. Теперь мы можем свободно зайти в свойства базы через консоль кластера 1С, снять необходимые блокировки, просмотреть данные или выполнить штатное удаление базы через интерфейс консоли.
  6. Если база еще потребуется для работы, откроем в конфигураторе список пользователей (Администрирование — Пользователи) и создадим нового администратора с известным паролем.
  7. После завершения работ временные таблицы можно вернуть в исходное состояние обратным переименованием:
    
    EXEC sp_rename 'v8users_temp', 'v8users';
    
    UPDATE Params
    SET FileName = 'users.usr'
    WHERE FileName = 'users.usr_temp';
    

Использование утилиты командной строки RAC

Посмотрим на возможности стандартной консольной утилиты rac, входящей в комплект поставки платформы 1С. Для удаления базы предусмотрена команда:


rac infobase --cluster=<ИдентификаторКластера> drop --infobase=<ИдентификаторБазы> --drop-database

Однако важно учитывать: если в базе данных зарегистрирован администратор, утилита rac также выдаст ошибку проверки прав и потребует обязательного указания параметров --ib-user и --ib-pwd. Поэтому в условиях, когда пароль полностью утерян, самым надежным способом остается редактирование файла 1cv8reg.lst при остановленной службе сервера либо сброс пользователей через SQL.

Таким образом, мы рассмотрели все доступные и безопасные варианты решения проблемы. Выбор конкретного метода зависит от того, требуется ли вам предварительный доступ к содержимому базы перед её окончательным удалением.

← На главную