В клиент-серверном режиме работы все данные хранятся в базе данных, управляемой одной из СУБД: MS SQL, Postgree SQL, IBM DB2 или Oracle. Информация об учетных записях хранится в двух таблицах: "v8users" и "Params".
В некоторых ситуациях может появиться необходимость сбросить учетные записи пользователей, чтобы войти в информационную базу. В статье рассмотрим действия, необходимые для выполнения этой задачи. В примере будем использовать MS SQL Server 2012 Express. Имя базы данных на SQL-сервере - "Exp".
Для того, чтобы сбросить учетные записи нужно выполнить два действия:
И так, нам нужны SQL-команды для сброса и восстановления пользователей информационной базы. Начнем с команд сброса списка пользователей. Нам нужно выполнить следующие действия:
"sp_rename 'v8users', 'h8users"Подробнее о команде "sp_rename" Вы можете прочитать здесь.
"UPDATE Params Set FileName = 'husers.usr' Where FileName = 'users.usr'"
Выполнив эти шаги, мы без проблем сможем зайти в информационную базу, пропустив этап аутентификации. Теперь перейдем к рассмотрению команд по восстановлению списка пользователей. Всего будет три команды:
"DROP TABLE v8users"Следует предусмотреть отсутствие этой таблицы, чтобы не появилась ошибка выполнения. Подробнее о команде "DROP TABLE" смотрите по ссылке.
"sp_rename 'h8users', 'v8users'"Ее синтаксис аналогичен предыдущему примеру, изменили лишь местами имена таблиц.
"UPDATE Params Set FileName = 'users.usr' Where FileName = 'husers.usr'"При необходимости нужно удалить новую запись настроек пользователей, если платформа ее создала.
Как пример использования приведенных SQL-команд создадим небольшую программку на платформе .NET, которая автоматизирует процесс сброса и восстановления учетных записей.
Программу Вы можете скачать по ссылке. Исходные файлы проекта Вы можете скачать отсюда. В принципе, написать подобрую программу не сложно. Важный момент - все действия по изменению базы данных должны выполняться в транзакции, что и было учтено.
Для сброса/восстановления учетных записей необходимо ввести адрес SQL-сервера, имя базы данных и информацию для аутентификации на SQL-сервере.
Таким образом, задача решена, а с помощью созданной программы процесс сброса учетных записей не будет проблемой.