Мои сайты
Частые вопросы
Полезные ссылки
Операционные системы
Программное обеспечение
Оборудование
СУБД
Кулинария
ПК под управлением ОС Linux семейства RHEL: RHEL 7 и старше, CentOS 7 и старше, Fedora… На этом ПК развёрнута СУБД PostgreSQL, в которой хранятся базы 1С 8.3. К некоторой базе 1С забыт пароль пользователя 1С с правами администратора.
Восстановить пароль пользователю с правами администратора.
Открываем терминал.
При помощи команды
sudo su
становимся суперпользователем root.
Становимся пользователем postgres, который по умолчанию имеет полные права на все базы, а после этого переходим в домашнюю папку пользователя postgres.
su postgres cd ~
Разрешим доступ/подключения к базе.
psql UPDATE pg_database SET datallowconn = true WHERE datname = 'test6'; \q
Теперь подключимся к нашей базе посредством psql
psql test6
Уточним структуру (типы столбцов) таблицы v8users.
# \d+ v8users Таблица "public.v8users" Столбец | Тип | Правило сортировки | Допустимость NULL | По умолчанию | Хранилище | Сжатие | Цель для статистики | Описание ---------+-----------------------------+--------------------+-------------------+--------------+-----------+--------+---------------------+---------- id | bytea | | | | extended | | | name | mvarchar(64) | | | | extended | | | descr | mvarchar(128) | | | | extended | | | osname | mvarchar(128) | | | | extended | | | changed | timestamp without time zone | | | | plain | | | rolesid | numeric(10,0) | | | | main | | | show | boolean | | | | plain | | | data | bytea | | | | extended | | | eauth | boolean | | | | plain | | | admrole | boolean | | | | plain | | | ussprh | numeric(10,0) | | | | main | | | Метод доступа: heap
На всякий случай копируем «в сторону» таблицу v8users. Копии даём имя v8usersback.
Саму таблицу v8users и users.usr переименовываем.
CREATE TABLE v8usersback AS TABLE v8users; ALTER TABLE v8users RENAME TO v8users2; UPDATE Params SET FileName='users.usr_old' WHERE FileName='users.usr';
Открываем базу 1С в конфигураторе. При входе в конфигуратор 1С пароля не спросит, т.к. на предыдущем шаге мы информацию о пользователях «спрятали» от 1С.
Возвращаемся к открытому терминалу.
Узнаём структуру таблицы v8users, которую создал конфигуратор.
#\d+ v8users Таблица "public.v8users" Столбец | Тип | Правило сортировки | Допустимость NULL | По умолчанию | Хранилище | Сжатие | Цель для статистики | Описание ---------+-----------------------------+--------------------+-------------------+--------------+-----------+--------+---------------------+---------- id | bytea | | not null | | plain | | | name | mvarchar(64) | | not null | | extended | | | descr | mvarchar(128) | | not null | | extended | | | osname | mvarchar(128) | | | | extended | | | changed | timestamp without time zone | | not null | | plain | | | rolesid | numeric(10,0) | | not null | | main | | | show | boolean | | not null | | plain | | | data | bytea | | not null | | extended | | | eauth | boolean | | | | plain | | | admrole | boolean | | | | plain | | | ussprh | numeric(10,0) | | | | main | | | email | mvarchar(128) | | | | extended | | | Индексы: "v8users_pkey1" PRIMARY KEY, btree (id) "byeauth" btree (admrole, eauth) "byemail_v8users" btree (email) "byname" btree (name) "byosname" btree (osname) "byrolesid" btree (rolesid) "byshow" btree (show) "byusdescr" btree (ussprh, descr) "byusemail_v8users" btree (ussprh, email) "byusname" btree (ussprh, name) "byusosname" btree (ussprh, osname) Метод доступа: heap
Удаляем созданную конфигуратором таблицу v8users и возвращаем на место прежние v8users и users.usr
DROP TABLE v8users; ALTER TABLE v8users2 RENAME TO v8users; UPDATE Params SET FileName='users.usr' WHERE FileName='users.usr_old';
Теперь у нас изначальная таблица вернулась на место, однако, конфигуратор ожидает наличия в ней столбца email, который отсутствует.
Создадим этот столбец и можем выходить из psql.
ALTER TABLE v8users ADD COLUMN email VARCHAR(128) NOT NULL DEFAULT 'no-email@example.com'; \q
Возвращаемся в конфигуратор 1С и в меню выбираем «Администрирование→Пользователи».
В списке пользователей ищем нужного, кликаем по нему правой кнопкой мыши, в выпавшем меню выбираем пункт «Изменить».
Если есть необходимость создать нового пользователя, это вы вполне сможете сделать позже зайдя штатными средствами в конфигуратор с логином и паролем.