Просмотров: 775 | Комментариев: 0

25.03.2019

1C 8.2/8.3 Как сбросить пароль от базы на SQL сервере

SQL

Сброс пароля от базы данных 1С Предприятия 8.2/8.3 возможен только если у вас есть доступ к самой базе данных через консоль Microsoft SQL сервера. Если у вас нет доступа к MS SQL серверу, то постараюсь рассмотреть этот вопрос в отдельной статье.

Внимание! Перед процедурой сброса пароля администратора или любого другого пользователя базы 1С настоятельно рекомендую сделать резервную копию базы данных! По карйней мере я так всегда делаю 😏.

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

Где в 1С 8.2/8.3 хранятся пароли

1С: Предприятие 8.2/8.3 хранит информацию о паролях в двух местах:

  • В таблице базы данных v8users.
  • В файле users.usr. Файл бинарно сохранен в таблице Params.

Учтите, что пароли хранятся не в открытом виде, а в виде хэш кодов. Это несимметричный алгоритм шифрования без возможности обратного восстановления. Поэтому зайти и задать где-то в конкретном поле новый пароль не получится. Не пытайтесь стирать вообще всю информацию из полей с паролями. Поля не бывают пустыми.

Так как получить администраторский доступ к 1С без пароля

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

Кстати: именно по причине проверки привилегий только на входе, при изменении прав доступа пользователей, новые параметры вступают в силу только после повторной авторизации пользователя.

Пункт 1. Переименовываем таблицу v8users и файл users.usr

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

Откроем Microsoft SQL Server Management Studio и выполним запрос к базе данных:

USE [Имя_Вашей_Базы_Данных]
GO
EXEC sp_rename 'v8users', 'v8users_tmp'
GO
UPDATE [Params]
SET [FileName] = 'users.usr_tmp'
WHERE [FileName] = 'users.usr'
GO

Идентификатор «your_database» замените на идентификатор вашей базы 1С. И запускаем его: F5 или иконка с восклицательным знаком.

Как выполнить sql запрос в MS SQL Management studio.

Пункт 2. Вход в 1С: Предприятие в режиме конфигуратора

Теперь открываем 1С в режиме конфигуратора. При входе программа не запросит ни пользователя ни пароля. База откроется с полными правами.

Имейте в виду, что отдельные конфигурации 1С имеют ряд особенностей по управлению пользователями. Эти особенности следует учитывать при выполнении процедуры сброса пароля 1С.

Пункт 3. Восстановление таблицы v8users и файла users.usr

Как только зашли, вернём старые пароли на место. Создаем новый SQL запрос в Microsoft SQL Server Management Studio:

USE [Имя_Вашей_Базы_Данных]
GO
DROP TABLE [v8users]
GO
EXEC sp_rename 'v8users_tmp', 'v8users'
GO
UPDATE [Params]
SET FileName = 'users.usr'
WHERE FileName = 'users.usr_tmp'
GO

Идентификатор «your_database» замените на идентификатор своей базы 1С. И запускаем его: F5 или иконка с восклицательным знаком.

Пункт 4. Изменяем пароль администратора или создаем нового

В Конфигураторе 1С измените пароль существующего администратора на свой или создайте нового пользователя с административными правами.

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

В заключение

Перезапустите 1С, теперь будет действовать указанный ранее пароль. Обязательно учитывайте особенности управления пользователями конкретной конфигурации 1С.


SQL

Комментарии (0)