В этой статье мы рассмотрим практический пример с использованием пакета «Oracle Data Masking and Subsetting Pack».
Маскировка данных — это процесс необратимой замены конфиденциальных данных фиктивными данными, цель которого — удалить конфиденциальные данные из сред тестирования, разработки, аналитики и других сред, отличных от производственных.
Прежде чем использовать его, имейте в виду, что если вы не используете архитектуру, в которой лицензии включены (например, Oracle ExaCC), они имеют специальную лицензию за использование.
Характеристики Oracle Data Masking and Subsetting:
Oracle Data Masking and Subsetting предустановлен в Oracle Enterprise Manager.
Для использования Oracle Data Masking и Subsetting необходимо иметь специальную лицензию на его использование.
Необходимо приобрести полную лицензию на пакет «Oracle Data Masking and Subsetting Pack».
Версия Oracle Data Masking and Subseting основана на версии плагина, установленного в Oracle Enterprise Manager
ПРАКТИЧЕСКИЙ ПРИМЕР
Для этого практического примера мы будем использовать примеры схем, включенные в Oracle (схемы HR).
Если вы не включили его во время установки или вам нужно воссоздать его, вы можете перейти по этой ссылке:
https://docs.oracle.com/en/database/oracle/oracle-database/19/comsc/installing-sample-schemas.html#GUID-1E645D09-F91F-4BA6-A286-57C5EC66321D
Создание модели данных
Во-первых, необходимо войти в консоль OEM13 и обнаружить данные (Application Data Modeling).
Enterprise -> Quailty Management -> Application Data Modeling

Начинаем заполнять данные:

Экран.1
Выбираем схему, в которой будем выполнять маскировку данных.

На этом этапе мы можем запустить задачу, которая обнаружит модель данных и отношения между таблицами, как указано в первом пункте (Экран 1).

Запускаем процесс:

Если все правильно, мы окажемся в следующей ситуации:

Если мы нажмем на кнопку «Open», мы можем увидеть результат обнаружения данных, которое выполнила задача.


Достигнув этого момента, мы можем приступить к обнаружению конфиденциальных данных.
Обнаружение конфиденциальных данных
Oracle по умолчанию имеет стандартные типы конфиденциальных столбцов, которые вы можете добавлять, или, наоборот, вы можете добавлять новые конфиденциальные столбцы в индивидуальном порядке.

Выполнение задачи обнаружения конфиденциальных данных в модели данных:

Мы можем увидеть столбцы, которые задача обнаружила как конфиденциальные.

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

Пример таблицы Jobs на 50%:


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

Выбираем критерии анонимизации.

Например, для поля телефона мы применим критерий «Random Numbers» из 7 символов. А для поля электронной почты мы выберем «shuffle» или перемешивание.
Критериев много, и их можно настраивать, поэтому настоятельно рекомендуется прочитать документацию и провести различные тесты, чтобы получить желаемый результат.

Опции – экспорт скрипта
После определения критерия существует несколько вариантов создания скрипта. Один из них — выполнить экспорт данных с анонимизированными данными и импортировать их в другую базу данных, другой вариант, который мы выберем, — это создание скрипта (PL/SQL), который применит маскировку к базе данных, где он будет выполнен. Как правило, это копия основной базы данных.
Для этого мы нажмем на кнопку «Generate Script».
Опции:

Выполняем экспорт данных и импортируем в другую базу данных в той же схеме:
Опции - экспорт / импорт
Исходные данные

Данные после импорта data pump

Шаги маскировки данных с помощью sql-скрипта (pl/sql).

Опции - экспорт скрипта
Исходные данные:

Данные после запуска scriptsql анонимизации в тестовой среде.

В этой статье мы сделали лишь небольшое ознакомление с этим инструментом. Инструмент предлагает множество опций, поэтому я советую максимально углубиться в него, чтобы получить максимальную отдачу.
Вы можете получить больше информации по этой официальной ссылке: https://www.oracle.com/uk/security/database-security/data-masking/
