Функции и процедуры методов обфускации данных#

В разделе представлены функции и процедуры функциональности обфускации данных и ее методов.

Динамическое маскирование#

В разделе представлены функции и процедуры методов динамического маскирования.

Частичное маскирование#

Функции метода частичного маскирования:

Объект

Аргументы, атрибуты

Возвращаемое значение

Описание

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

Версия расширения