16 июня 2016 г.

Как сбросить пароли пользователей 1C если база на SQL Server или PostgreSQL


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

Для MS SQL открываем SQL Server Management Studio авторизуемся и создаем запрос к базе данных с содержанием:
EXEC sp_rename 'v8users', 'v8users_old'
GO
UPDATE Params
SET FileName = 'users.usr_old'
WHERE FileName = 'users.usr'
GO

После этого открываем базу данных в конфигураторе и видим что платформа не спрашивает пользователя и пароль, при этом в SQL Server будет заново создана таблица v8users. Теперь чтобы всех пользователей вернуть обратно не закрывая конфигуратора выполним в SQL Server Management Studio запрос:
DROP TABLE v8users
GO
EXEC sp_rename 'v8users_old', 'v8users'
GO
UPDATE Params
SET FileName = 'users.usr'
WHERE FileName = 'users.usr_old'
GO   
После выполнения запроса в списке пользователей появятся все пользователи 1С:Предприятие, останется только найти нужного и изменить ему пароль.

Для PostgreSQL открываем pgAdminIII и выполняем:
ALTER TABLE v8users RENAME TO v8users_old;
UPDATE Params SET FileName = 'users.usr_old' 
WHERE FileName = 'users.usr';
заходим в конфигуратор и в pgAdminIII выполняем:
DROP TABLE v8users;
ALTER TABLE v8users_old RENAME TO v8users;
UPDATE Params SET FileName = 'users.usr' 
WHERE FileName = 'users.usr_old';

После этого запроса редактируем пользователей.