Каталог решений - Обезличивание базы средствами Конвертации данных 2

Обезличивание базы средствами Конвертации данных 2

Обезличивание базы средствами Конвертации данных 2

В наличии

Быстро, просто, понятно обезличить нужные данные в любой базе.

Категория:

Описание

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

Речь идёт об использовании системы "Конвертация данных 2". Суть проста — всю черновую работу по чтению, записи, модификации данных берёт на себя штатный механизм, а разработчику остаётся только указать места, где требуется обезличивание. При этом всё управляемо и без подвохов — не нарушатся ссылки, логическая целостность, не пострадает функциональность. Главное — указать объекты и поля, которые обезличить. И весь инструментарий КД к нашим услугам.

Идея проста: создаём конвертацию, берём копию базы (ну или не копию), из неё выгружаем в файл и обратно в неё же загружаем этот файл, и готово. Итак:

 

1. Выгружаем описание нужной базы, создаём конвертацию, в качестве источника и приёмника указываем одну и ту же конфигурацию.

 

2. При необходимости, параметрами определяем объекты, подлежащие обезличиванию (опять же, их удобно будет указать в пользовательском режиме средствами отбора и периода в Универсальном обмене XML). Тут, очевидно, можно по-всякому — и через собственные произвольные выборки, и стандартными запросами, смотря по конкретике задачи. Хоть принудительно "ВыгрузитьДанныеПоПравилу", хоть как. Например, определив массив:

 

3. Поскольку база одна и та же, смело используем стыковку по GUID. Если под обезличивание попадают поля, уникально идентифицирующие элемент данных, то это единственный надёжный способ, поэтому флаг продолжения поиска выключаем (казалось бы — зачем? а затем, что битые ссылки иногда вынуждают КД продолжить поиск уже по ключевым полям).

 

4. Обезличиваем нужные реквизиты нужных объектов любым нравящимся способом — например, сделать наименования равными кодам:

С тем же успехом можно:

// для ФИО сотрудника
Значение="Иванов Иван Иванович";
// для цен и сумм
Значение=666;
// или
текДата=ТекущаяДата();
Значение=Год(текДата)-Месяц(текДата)+День(текДата);

Простор для фантазии)

Так же удобно обработать содержимое табличных частей через КоллекцияОбъектов или через ВходящиеДанные.

 

5. При необходимости обрабатываем не только справочники, документы и независимые регистры сведений, но и константы, если они простых типов:

 

6. Если в базе есть регистры и прочие вторичные данные, чьи поля простых типов зависят от неких операций (обычно от проведения документов), то перепроводим:

 

7. И только со значениями перечислений трудновато, разве что, исходя из точного понимания механизма, действительно аккуратно подменить на некое обезличенное значение, например:

Ещё можно перекидывать через ПараметрыОбъекта, тогда с любыми данными полная свобода манёвра, но больше хлопот.

 

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

Логирование, отладка — всё уже есть штатно.

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

Если баян, смело кидайте тухлыми помидорами)

has been added to your cart:
Оформление заказа