Как сбросить пароль в базе 1с sql
Перейти к содержимому

Как сбросить пароль в базе 1с sql

  • автор:

Как сбросить пароли пользователей 1С 8.3 на СУБД MS SQL Server

Рассмотрим способ сброса паролей SQL-базы 1С, если вы случайно потеряли доступ к учетной записи администратора (-ов) или не знаете вообще паролей пользователей ИБ.

Сценарием поделился Андрей Грибчатов — читатель нашего Дзен-канала. Отдельная благодарность Андрею за это элегантное решение.

Еще раз. Перед нами стоит задача — обнулить или сменить пароль администратора информационной базы 1С на SQL и вернуть себе управление. Поехали.

Внимание

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

Вводные условия для теста

  • Технологическая платформа 8.3.18.1208 x64, клиент-серверный режим на MS SQL Server.
  • База 1С открывается до этапа выбора пользователя, но возможности авторизоваться нет (пароли утеряны).
  • Есть административный доступ к СУБД через оснастку управления SQL Server Management Studio.

Первый этап

На первом шаге запускаем Management Studio и открываем консоль запросов.

Следующими командами делаем копии таблиц v8users и Params. С дальнейшей очисткой v8users и строчки в таблице Params, содержащей значение «users.usr».

, где [DatabaseName] — имя вашей информационной базы 1С.

Успешное выполнение запроса

Второй этап

Не закрывая окно SQL Server Management Studio, откройте базу 1С в режиме Конфигуратора. Т. к. список пользователей зачищен, то Конфигуратор должен открыться без пароля в штатном режиме.

После открытия Конфигуратора вернитесь в окно запросов SQL и выполните следующие команды:

Этот сценарий возвращает данные обратно в таблицы v8users и Params.

Возвращение содержимого таблиц v8users и Params из копий

После этого действия вы можете открыть список пользователей в Конфигураторе (Меню «Администрирование — Пользователи») и поменять или сбросить пароли пользователей.

Например, выбрать учетную запись с полными правами и обнулить пароль.

Или поставить аккаунту «аутентификация операционной системы» от имени текущего пользователя, а потом в режиме Предприятия добавить нового пользователя, а аутентификацию вернуть как было.

Успехов вам в восстановлении доступа к базе (-ам). Если требуется дополнительная поддержка — наши специалисты готовы помочь → +7-911-500-10-11

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

Бывают случаи когда есть доступ на SQL Server, а пароль от пользователя 1С с полными права потерян, в этом случае возможно снять пароль способом который описан ниже, итак поехали.

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

Теперь попробуем заставить платформу думать что в базе нет ни одного пользователя. Для этого необходимо всего навсего переименовать таблицу v8users и строчку с файлом users.usr. Открываем SQL Server Management Studio логинимся и создаем запрос к базе данных с содержанием:

После этого открываем базу данных в конфигураторе и видим что платформа не спрашивает пользователя и пароль, при этом в SQL Server будет заново создана таблица v8users. Теперь чтобы всех пользователей вернуть обратно не закрывая конфигуратора выполним в SQL Server Management Studio запрос:

После выполнения запроса в списке пользователей появяться все пользователи 1С, останеться только найти нужного и изменить ему пароль.

1 с 8 Предприятие. Конфигурирование и администрирование.

Бывают случаи когда БД работает в серверном варианте, при этом есть доступ на SQL Server, а пароль от пользователя 1С с полными права потерян, в этом случае возможно снять пароль способом который описан ниже.
Итак, поехали.
Платформа 1С при работе на SQL Server хранит список пользователей в двух местах, а именно в таблице v8users и в файле users.usr который бинарно расположен в таблице Params.
Теперь попробуем заставить платформу думать что в базе нет ни одного пользователя. Для этого необходимо всего навсего переименовать таблицу v8users и строчку с файлом users.usr. Открываем 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С, останеться только найти нужного и изменить ему пароль.

Сброс пользователей в клиент-серверной базе 1С:Предприятия 8.x

В клиент-серверном режиме работы все данные хранятся в базе данных, управляемой одной из СУБД: MS SQL, Postgree SQL, IBM DB2 или Oracle. Информация об учетных записях хранится в двух таблицах: «v8users» и «Params».

Изображение

В некоторых ситуациях может появиться необходимость сбросить учетные записи пользователей, чтобы войти в информационную базу. В статье рассмотрим действия, необходимые для выполнения этой задачи. В примере будем использовать MS SQL Server 2012 Express . Имя базы данных на SQL-сервере — «Exp».

Для того, чтобы сбросить учетные записи нужно выполнить два действия:

  1. Удалить таблицу «v8users».
  2. Удалить запись из таблицы «Params», у которой в первой колонке «FileName» содержится значение «users.usr».

SQL-команды

И так, нам нужны SQL-команды для сброса и восстановления пользователей информационной базы. Начнем с команд сброса списка пользователей. Нам нужно выполнить следующие действия:

  1. Переименовываем таблицу «v8users» в «h8users» вместо ее удаления. Это позволит восстановить таблицу в дальнейшем. Подробнее о команде «sp_rename» Вы можете прочитать здесь .
  2. В таблице «Params» также не будем удалять запись, а лишь изменим значение в колонке «FileName» с «users.usr» на «husers.usr». Тогда платформа не сможет найти параметры пользователей информационной базы. Подробнее о команде «UPDATE» Вы можете узнать здесь .

Выполнив эти шаги, мы без проблем сможем зайти в информационную базу, пропустив этап аутентификации. Теперь перейдем к рассмотрению команд по восстановлению списка пользователей. Всего будет три команды:

  1. Удаление таблицы «v8users», поскольку входа в ИБ платформа создает таблица заново, если она отсутствовала. Вот так выглядит SQL-команда по удалению таблицы из БД. Следует предусмотреть отсутствие этой таблицы, чтобы не появилась ошибка выполнения. Подробнее о команде «DROP TABLE» смотрите по ссылке .
  2. Восстанавливаем исходное имя таблицы «v8users». Ее синтаксис аналогичен предыдущему примеру, изменили лишь местами имена таблиц.
  3. Возвращаем исходную запись параметров. При необходимости нужно удалить новую запись настроек пользователей, если платформа ее создала.

Автоматизируем процесс

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

Программу Вы можете скачать по ссылке . Исходные файлы проекта Вы можете скачать отсюда . В принципе, написать подобрую программу не сложно. Важный момент — все действия по изменению базы данных должны выполняться в транзакции, что и было учтено.

Изображение

Для сброса/восстановления учетных записей необходимо ввести адрес SQL-сервера, имя базы данных и информацию для аутентификации на SQL-сервере.

Таким образом, задача решена, а с помощью созданной программы процесс сброса учетных записей не будет проблемой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *