Ситуация
В Имплекс обратился один из крупных отечественных автопроизводителей. В повседневной деятельности концерн задействует значительное число информационных баз — как типовых конфигураций, так и систем собственной разработки. Сведения, которые хранятся в этих базах, относятся к категории конфиденциальных. Чтобы исключить их утечку при передаче баз разработчикам, компания была обязана делать данные обезличенными в тестовых копиях.
Для этой задачи применялась обработка из подсистемы «Защита персональных данных» платформы 1С:Предприятие 8, доступная в функциях для технического специалиста по внутренней ссылке e1cib/app/Обработка.СкрытиеКонфиденциальнойИнформации. Она справлялась с задачей, однако при работе с базами большого объёма процедура растягивалась на очень длительное время. Именно это и побудило заказчика обратиться с просьбой найти более быстрое решение.
Задача
Создать инструмент, существенно сокращающий продолжительность процедуры обезличивания данных в БД, сохранив при этом надёжную защиту конфиденциальных сведений.
Решение
Чтобы решить поставленную задачу, мы разработали инструмент специализированной обработки «Обезличивание ИБД» с помощью средств СУБД PostgreSQL. Работа с ней выстроена в чёткой последовательности шагов.
Этап 1. Внедрение подсистемы обезличивания
В конфигурацию БД, которую требовалось обезличить, интегрируется подсистема «Обезличивание». Это подготовительный шаг, открывающий доступ ко всем последующим инструментам и настройкам.
Этап 2. Создание отладочной копии и развёртывание на сервере
На основе целевой базы создаётся тестовая копия, которую затем разворачивают на сервере. Именно с ней и будет проводиться дальнейшее обезличивание, тогда как оригинальная база остаётся нетронутой.
Этап 3. Создание хранимой функции инструментами СУБД
Для отладочной копии БД на сервере с помощью инструментов PostgreSQL создаётся хранимая функция следующего вида:
CREATE FUNCTION execom(text)
RETURNS text
LANGUAGE 'plpgsql'
COST 100
VOLATILE PARALLEL UNSAFE
AS $BODY$
BEGIN
EXECUTE $1;
RETURN 'ok';
END;
$BODY$;
Эта функция служит исполнительным механизмом, через который передаются и выполняются команды обезличивания на уровне СУБД.

Этап 4. Настройка внешнего источника данных в основной конфигурации
В основной конфигурации настраивается внешний источник данных с именем «ОбезличиваемаяБаза». Для этого необходимо переподключить функцию public_execom.

В конструкторе она выбирается из общего списка функций:

После чего задаются параметры подключения:
Driver={PostgreSQL Unicode};Server=;Port=;Database=;STMT=utf8

Искомая функция public_execom находится в ветке public.

Этап 5. Настройка параметров обезличивания в тестовой базе
В тестовой базе, для которой выполняется процедура обезличивания, запускается обработка «Обезличивание ИБД». На вкладке «Настройки» специалист отмечает объекты, строковые реквизиты, табличные части и строковые реквизиты табличных частей, которые должны быть обезличены. Сформированный список сохраняется в файл кнопкой «Сохранить настройки» — для последующего использования.

Этап 6. Запуск обезличивания из основной базы
В основной базе также открывается обработка «Обезличивание ИБД». На вкладке «Обезличивание» через кнопку «Загрузить настройки» загружается ранее сохранённый список объектов и реквизитов. Затем из него выбираются те позиции, которые нужно обезличить в текущем сеансе, и нажимается кнопка «Обезличить».

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