Сброс пароля в 1С 8 через MS SQL

Сброс пароля 1С 8.2 или 8.3 может потребоваться, если по каким-то причинам админский доступ был утрачен. Надо сказать, что сброс пароля 1С с базой под SQL Server выполняется даже проще, чем в файловом варианте.

Единственным условием успешного выполнения процедуры сброса пароля 1С Предприятия 8.2/8.3 является доступ в консоль Microsoft SQL сервера. Если растеряли вообще все пароли, то ситуация несколько усложняется. В данной статье будет дано описание только как снять пароль 1С с SQL базы. Способ сброса пароля пользователя SQL Server — отдельная тема.

Приступим…

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

Где 1С хранит данные о паролях

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

  1. В таблице БД v8users.
  2. В файле users.usr. Файл бинарно сохранен в таблице Params.

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

Не пытайтесь стирать вообще всю инфу из полей с паролями. Они не бывают пустыми.

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

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

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

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

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

Откроем Management Studio.

Создаем новый запрос к БД:

USE [your_database]
GO
EXEC sp_rename 'v8users', 'v8users_tmp'
GO
UPDATE [Params]
SET [FileName] = 'users.usr_tmp'
WHERE [FileName] = 'users.usr'
GO

Идентификатор «your_database» замените на идентификатор своей базы 1С.

И запускаем его: F5 или иконка с восклицательным знаком.

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

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

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

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

Теперь выполним обратную операцию тому, что было сделано на шаге 1.

Снова создаем новый SQL скрипт в Management Studio, и вписываем туда:

USE [your_database]
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С:Преприятия, а не в Конфигураторе. Поэтому лучше изменить пароль существующего администратора, а не создавать через Конфигуратор нового пользователя.

Заключение

Закройте Конфигуратор и откройте снова. Теперь будет действовать указанный пароль на шаге 4.

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

Источник: http://www.msav.ru/blog/1334-sbros-parolya-1s-pod-sql

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.