Функции и процедуры методов обфускации данных
В разделе представлены функции и процедуры функциональности обфускации данных и ее методов.
Динамическое маскирование
В разделе представлены функции и процедуры методов динамического маскирования.
Частичное маскирование
Функции метода частичного маскирования:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.partial | ov text , prefix integer , padding text , suffix integer | text | Частичное маскирование текстовых данных |
FUNCTION anon.partial_email | ov text | text | Частичное маскирование e-mail |
Искажение
Функции метода искажения:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.noise | noise_value anyelement , ratio double precision | anyelement | Искажение с числовым интервалом |
FUNCTION anon.dnoise | noise_value anyelement , noise_range interval | anyelement | Искажение с интервалом дата/время |
Обобщение
Функции обобщения:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.generalize_daterange | val date , step text DEFAULT 'decade'::text | daterange | Обобщение для типа данных date |
FUNCTION anon.generalize_int4range | val integer , step integer DEFAULT 10 | int4range | Обобщение для типа данных integer |
FUNCTION anon.generalize_int8range | val bigint , step bigint DEFAULT 10 | int8range | Обобщение для типа данных bigint |
FUNCTION anon.generalize_numrange | val numeric , step integer DEFAULT 10 | numrange | Обобщение для типа данных numeric |
FUNCTION anon.generalize_tsrange | val timestamp without time zone , step text DEFAULT 'decade'::text | tsrange | Обобщение для типа данных timestamp |
FUNCTION anon.generalize_tstzrange | val timestamp with time zone , step text DEFAULT 'decade'::text | tstzrange | Обобщение для типа данных timestamptz |
Рандомизация
Функции метода рандомизации:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.random_bigint_between | int_start bigint , int_stop bigint | bigint | Рандомизация для типа данных bigint |
FUNCTION anon.random_date | - | timestamp with time zone | Генерация случайной даты |
FUNCTION anon.random_date_between | date_start timestamp with time zone , date_end timestamp with time zone | timestamp with time zone | Генерация случайной даты в диапазоне |
FUNCTION anon.random_hash | seed text | text | Генерация случайного хеша |
FUNCTION anon.random_in | a anyarray | anyelement | Генерация случайного значения из массива |
FUNCTION anon.random_in_daterange | r daterange | date | Генерация случайной даты из диапазона |
FUNCTION anon.random_in_enum | element anyelement | anyelement | Генерация случайного значения ENUM |
FUNCTION anon.random_in_int4range | r int4range | integer | Генерация случайного значения в диапазоне integer |
FUNCTION anon.random_in_int8range | r int8range | bigint | Генерация случайного значения в диапазоне bigint |
FUNCTION anon.random_in_numrange | r numrange | numeric | Генерация случайного значения в диапазоне numeric |
FUNCTION anon.random_in_tsrange | r tsrange | timestamp without time zone | Генерация случайного значения в диапазоне tsrange |
FUNCTION anon.random_in_tstzrange | r tstzrange | timestamp with time zone | Генерация случайного значения в диапазоне tstzrange |
FUNCTION anon.random_inn10 | - | text | Генерация случайного значения ИНН юридического лица (с вычислением контрольной суммы) |
FUNCTION anon.random_inn12 | - | text | Генерация случайного значения ИНН физического лица (с вычислением контрольной суммы) |
FUNCTION anon.random_int_between | int_start integer , int_stop integer | integer | Генерация случайного значения в диапазоне integer |
FUNCTION anon.random_ogrn | - | text | Генерация случайного значения ОГРН юридического лица (с вычислением контрольной суммы) |
FUNCTION anon.random_ogrnip | - | text | Генерация случайного значения ОГРН физического лица (с вычислением контрольной суммы) |
FUNCTION anon.random_phone | phone_prefix text DEFAULT '0'::text | text | Генерация случайного значения телефонного номера с заданным префиксом |
FUNCTION anon.random_snils | - | text | Генерация случайного значения СНИЛС физического лица (с вычислением контрольной суммы) |
FUNCTION anon.random_string | l integer | text | Генерация случайного значения слова заданной длины (заглавная латиница + цифры) |
FUNCTION anon.random_zip | - | text | Генерация случайного значения почтового индекса |
FUNCTION anon.lorem_ipsum | paragraphs integer DEFAULT 5 , words integer DEFAULT 0 , characters integer DEFAULT 0 | text | Генерация случайного значения текста заданной длины |
Фальсификация
Функции метода фальсификации:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.fake_address | - | text | Фальсифицированный адрес |
FUNCTION anon.fake_city | - | text | Фальсифицированный город |
FUNCTION anon.fake_company | - | text | Фальсифицированная компания |
FUNCTION anon.fake_country | - | text | Фальсифицированная страна |
FUNCTION anon.fake_email | - | text | Фальсифицированный e-mail |
FUNCTION anon.fake_first_name | - | text | Фальсифицированное имя |
FUNCTION anon.fake_iban | - | text | Фальсифицированный IBAN |
FUNCTION anon.fake_inn | - | text | Фальсифицированный ИНН |
FUNCTION anon.fake_last_name | - | text | Фальсифицированная фамилия |
FUNCTION anon.fake_middle_name | - | text | Фальсифицированное отчество |
FUNCTION anon.fake_ogrn | - | text | Фальсифицированный ОГРН |
FUNCTION anon.fake_personal_name | mask text DEFAULT '%1$s %2$s %3$s'::text | text | Фальсифицированное ФИО (по маске, где: %1 - Имя, %2 - Фамилия, %3 - Отчество ) |
FUNCTION anon.fake_postcode | - | text | Фальсифицированный почтовый индекс |
FUNCTION anon.fake_siret | - | text | Фальсифицированный SIRET |
FUNCTION anon.fake_snils | - | text | Фальсифицированный СНИЛС |
Псевдонимизация
Функции метода псевдонимизации:
Для всего блока:
seed
- исходное значение;salt
- соль. Если не задана — используетсяGUC anon.salt
, иначе -null
.
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.pseudo_address | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный адрес |
FUNCTION anon.pseudo_city | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный город |
FUNCTION anon.pseudo_company | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированная компания |
FUNCTION anon.pseudo_country | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированная страна |
FUNCTION anon.pseudo_email | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный e-mail |
FUNCTION anon.pseudo_first_name | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированное имя |
FUNCTION anon.pseudo_iban | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный IBAN |
FUNCTION anon.pseudo_inn | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный ИНН |
FUNCTION anon.pseudo_last_name | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированная фамилия |
FUNCTION anon.pseudo_middle_name | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированное отчество |
FUNCTION anon.pseudo_ogrn | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный ОГРН |
FUNCTION anon.pseudo_personal_name | seed anyelement , salt text DEFAULT NULL::text , mask text DEFAULT '%1$s %2$s %3$s'::text | text | Псевдонимизированное ФИО (по маске, где: %1 - Имя, %2 - Фамилия, %3 - Отчество) |
FUNCTION anon.pseudo_postcode | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный почтовый индекс |
FUNCTION anon.pseudo_siret | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный SIRET |
FUNCTION anon.pseudo_snils | seed anyelement , salt text DEFAULT NULL::text | text | Псевдонимизированный СНИЛС |
Хеширование текстовых данных
Функции метода хеширования тестовых данных:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.hash | seed text | text | Хеш текста |
FUNCTION anon.digest | val text , salt text , algorithm text | text | Хеш текста (с выбором соли и алгоритма) |
Статическое маскирование
В разделе представлены функции и процедуры методов статического маскирования.
Перестановка
Функции метода перестановки:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.shuffle_column | shuffle_table regclass , shuffle_column name , primary_key name | boolean | Генерация колонки с перестановкой элементов |
Искажение
Функции метода искажения:
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.add_noise_on_datetime_column | noise_table regclass , noise_column text , variation interval | boolean | Искажение временного типа |
FUNCTION anon.add_noise_on_numeric_column | noise_table regclass , noise_column text , ratio double precision | boolean | Искажение числового типа |
Реализация правил динамического маскирования в статическом режиме
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.anonymize_column | tablename regclass , colname name | boolean | Маскирование атрибута |
FUNCTION anon.anonymize_database | - | boolean | Маскирование базы данных |
FUNCTION anon.anonymize_table | tablename regclass | boolean | Маскирование таблицы |
Служебные функции и процедуры
Для всего блока приводятся описания только объектов, предназначенных для пользовательского пространства.
Объект | Аргументы, атрибуты | Возвращаемое значение | Описание |
---|---|---|---|
FUNCTION anon.build_anonymize_column_assignment | tablename regclass , colname name | text | Создание маппинга имя колонки = замена |
FUNCTION anon.column_exists | table_relid regclass , column_name name | boolean | Аналог функции concat . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.concat | text , text | text | Аналог функции date_add . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_add | timestamp with time zone , interval | timestamp with time zone | Аналог функции date_part . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_part | text , timestamp without time zone | double precision | Аналог функции date_part . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_part | text , interval | double precision | Аналог функции date_subtract . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_subtract | timestamp with time zone ,interval | timestamp with time zone | Аналог функции date_trunc . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_trunc | text , timestamp without time zone | timestamp without time zone | Аналог функции date_trunc . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_trunc | text , interval | interval | Аналог функции date_trunc . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.date_trunc | text , timestamp with time zone , text | timestamp with time zone | Автодетектирование масок анонимизации для предопределенной локали. Используются атрибуты всех отношений текущей БД, за исключением служебных схем и схемы, определенной GUC anon.maskschema . Поиск ведется по соответствию имени атрибута, локали в anon.identifier . Категория и маскирующая функция определяется по anon.identifier_category |
FUNCTION anon.detect | dict_lang text DEFAULT 'en_US'::text | TABLE(table_name regclass, column_name name, identifiers_category text, direct boolean) | - |
FUNCTION anon.get_attrdef | relid integer , num integer | text | - |
FUNCTION anon.get_function_schema | text | text | - |
FUNCTION anon.get_relname | t text | text | - |
FUNCTION anon.get_schema | t text | text | - |
FUNCTION anon.get_tablesample_ratio | relid oid | text | - |
FUNCTION anon.hasmask | role regrole , masking_policy text DEFAULT 'anon'::text | boolean | - |
FUNCTION anon.hex_to_int | hexval text | integer | - |
FUNCTION anon.init | - | boolean | Инициализация расширения. Локаль инициализации должна быть выбрана перед запуском. При инициализации загружаются таблицы псевдонимизации, случайно генерируются заполнение таблиц ИНН, ОГРН, СНИЛС. При инициализации случайно выбираются до 2500 значений ФИО по соответствию пола |
FUNCTION anon.init | datapath text | boolean | Инициализация расширения с возможностью задания собственного пути расположения csv-данных таблиц псевдонимизации |
FUNCTION anon.init_masking_policies | - | boolean | - |
FUNCTION anon.is_initialized | - | boolean | - |
FUNCTION anon.k_anonymity | relid regclass | integer | Получение идентификаторов K-Anonymity для отношения. Процедура производит оценку стойкости идентификаторов для отношения |
FUNCTION anon."left" | text | text | Аналог функции left . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.load | - | boolean | - |
FUNCTION anon.load | text | boolean | - |
FUNCTION anon.load_csv | dest_table regclass , csv_file text | boolean | - |
FUNCTION anon.lower | text | text | Аналог функции lower . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.make_date | integer , integer , integer | date | Аналог функции make_date . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.mask_columns | source_relid oid | TABLE(attname name, masking_filter text, format_type text) | - |
FUNCTION anon.mask_create_view | relid oid | boolean | Создание маскированного представления для динамических методов |
FUNCTION anon.mask_drop_view | relid oid | boolean | Удаление маскированного представления для динамических методов |
FUNCTION anon.mask_filters | relid oid | text | Формирования тела запроса, используемого для mask_create_view |
FUNCTION anon.mask_role | maskedrole regrole | boolean | Действия, накладываемые на маскируемую роль. Изменение функции может быть полезно в случае использования собственной ролевой модели |
FUNCTION anon.mask_select | relid oid | text | Формирование SELECT запроса для динамических методов. Метод также используется для логического дампа |
FUNCTION anon.mask_update | - | boolean | Функция используется для обновления правил маскирования, вызывается после каждой из команд SECURITY LABEL FOR anon |
FUNCTION anon.masking_expressions_for_table | oid , text | text | - |
FUNCTION anon.masking_value_for_column | oid , integer , text | text | - |
FUNCTION anon.md5 | text , integer | text | - |
FUNCTION anon.notice_if_not_init | - | text | - |
FUNCTION anon.projection_to_oid | seed anyelement , salt text , last_oid bigint | integer | - |
FUNCTION anon.register_masking_policy | policy text | boolean | - |
FUNCTION anon.remove_masks_for_all_columns | - | boolean | Очистка масок всех атрибутов |
FUNCTION anon.remove_masks_for_all_roles | - | boolean | Очистка масок всех ролей |
FUNCTION anon.reset | - | boolean | Очистка таблиц псевдонимизации |
FUNCTION anon."right" | text , integer | text | Аналог функции right . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.start_dynamic_masking | autoload boolean DEFAULT true | boolean | Старт динамического маскирования: загрузка данных для псевдонимизации, создание схемы для маскирования (anon.maskschema ), обновление масок |
FUNCTION anon.stop_dynamic_masking | - | boolean | Остановка динамического маскирования |
FUNCTION anon.substr | text , integer | text | Аналог функции substr . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.substr | text , integer , integer | text | Аналог функции substr . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.ternary | condition boolean , then_val anyelement , else_val anyelement | anyelement | Аналог функции CASE WHEN THEN . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.trg_check_trusted_schemas | - | event_trigger | - |
FUNCTION anon.trg_mask_update | - | event_trigger | - |
FUNCTION anon.unload | - | boolean | Выгрузка расширения |
FUNCTION anon.unmask_role | maskedrole regrole | boolean | - |
FUNCTION anon.upper | text | text | Аналог функции upper . Перенос функции связан с ограничением anon.restriict_to_trusted_schemas |
FUNCTION anon.version | - | text | Версия расширения |