8.5.2.4 Описание функций компонента маскирования и обезличивания данных MySQL Enterprise
Компонент MySQL Enterprise Data Masking and De-Identification включает несколько функций, которые можно сгруппировать в следующие категории:
Функции компонента маскировки данных
Каждая функция компонента в этом разделе выполняет операцию маскировки над своим строковым аргументом и возвращает замаскированный результат.
-
mask_canada_sin(str[,mask_char])Маскирует страховой номер социального обеспечения Канады (SIN) и возвращает номер со всеми значимыми цифрами, замененными символами
'X'. Можно указать необязательный символ маскировки.Аргументы:
-
str: Строка для маскировки. Допустимые форматы:Девять цифр без разделителей.
Девять цифр, сгруппированных по шаблону:
xxx-xxx-xxx('-' — любой разделительный символ).
Этот аргумент преобразуется в кодировку
utf8mb4. mask_char: (Необязательно) Один символ для использования в качестве маскировки. По умолчанию используется'X', еслиmask_charне указан.
Возвращаемое значение:
Замаскированный номер SIN Канады в виде строки, закодированной в кодировке
utf8mb4, ошибка, если аргумент имеет неверную длину, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_canada_sin('046-454-286'), mask_canada_sin('abcdefijk');+--------------------------------+------------------------------+ | mask_canada_sin('046-454-286') | mask_canada_sin('abcdefijk') | +--------------------------------+------------------------------+ | XXX-XXX-XXX | XXXXXXXXX | +--------------------------------+------------------------------+ mysql>SELECT mask_canada_sin('909');ERROR 1123 (HY000): Can't initialize function 'mask_canada_sin'; Argument 0 is too short. mysql>SELECT mask_canada_sin('046-454-286-909');ERROR 1123 (HY000): Can't initialize function 'mask_canada_sin'; Argument 0 is too long. -
-
Маскирует международный банковский номер счета (IBAN) и возвращает номер, у которого все символы, кроме первых двух букв (обозначающих страну), заменены символами
'*'. Можно указать необязательный символ маскировки.Аргументы:
-
str: Строка для маскировки. Каждая страна может иметь различную национальную систему маршрутизации или нумерации счетов, с минимальным количеством в 13 и максимальным в 34 альфанумерических символов ASCII. Допустимые форматы:Символы без разделителей.
Символы, сгруппированные по четыре, за исключением последней группы, и разделенные пробелом или любым другим разделительным символом (например:
xxxx-xxxx-xxxx-xx).
Этот аргумент преобразуется в кодировку
utf8mb4. mask_char: (Необязательно) Один символ для использования в качестве маскировки. По умолчанию используется'*', еслиmask_charне указан.
Возвращаемое значение:
Замаскированный международный банковский номер счета в виде строки, закодированной в кодировке
utf8mb4, ошибка, если аргумент имеет неверную длину, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_iban('IE12 BOFI 9000 0112 3456 78'), mask_iban('abcdefghijk');+------------------------------------------+--------------------------+ | mask_iban('IE12 BOFI 9000 0112 3456 78') | mask_iban('abcdefghijk') | +------------------------------------------+--------------------------+ | IE** **** **** **** **** ** | ab********* | +------------------------------------------+--------------------------+ mysql>SELECT mask_iban('909');ERROR 1123 (HY000): Can't initialize function 'mask_iban'; Argument 0 is too short. mysql>SELECT mask_iban('IE12 BOFI 9000 0112 3456 78 IE12 BOFI 9000 0112 3456 78');ERROR 1123 (HY000): Can't initialize function 'mask_iban'; Argument 0 is too long. -
-
mask_inner(str,margin1,margin2[,mask_char])Маскирует внутреннюю часть строки, оставляя концы нетронутыми, и возвращает результат. Можно указать необязательный символ маскировки.
mask_innerподдерживает все кодировки.Аргументы:
str: Строка для маскировки. Этот аргумент преобразуется в кодировкуutf8mb4.margin1: Неотрицательное целое число, указывающее количество символов в левом конце строки, которые должны остаться незамаскированными. Если значение равно 0, символы левого конца не остаются незамаскированными.margin2: Неотрицательное целое число, указывающее количество символов в правом конце строки, которые должны остаться незамаскированными. Если значение равно 0, символы правого конца не остаются незамаскированными.mask_char: (Необязательно) Один символ для использования в качестве маскировки. По умолчанию используется'X', еслиmask_charне указан.
Возвращаемое значение:
Замаскированная строка, закодированная в той же кодировке, что и для
str, или ошибка, если любое поле имеет отрицательное значение.Если сумма значений полей больше длины аргумента, маскировка не происходит, и аргумент возвращается без изменений.
ПримечаниеФункция оптимизирована для более быстрой работы с однобайтовыми строками (имеющими одинаковую длину байтов и длину символов). Например, кодировка
utf8mb4использует только один байт для символов ASCII, поэтому функция обрабатывает строки, содержащие только символы ASCII, как однобайтовые строки.Пример:
mysql>
SELECT mask_inner('abcdef', 1, 2), mask_inner('abcdef',0, 5);+----------------------------+---------------------------+ | mask_inner('abcdef', 1, 2) | mask_inner('abcdef',0, 5) | +----------------------------+---------------------------+ | aXXXef | Xbcdef | +----------------------------+---------------------------+ mysql>SELECT mask_inner('abcdef', 1, 2, '*'), mask_inner('abcdef',0, 5, '#');+---------------------------------+--------------------------------+ | mask_inner('abcdef', 1, 2, '*') | mask_inner('abcdef',0, 5, '#') | +---------------------------------+--------------------------------+ | a***ef | #bcdef | +---------------------------------+--------------------------------+ -
mask_outer(str,margin1,margin2[,mask_char])Маскирует левый и правый концы строки, оставляя внутреннюю часть незамаскированной, и возвращает результат. Можно указать необязательный символ маскировки.
mask_outerподдерживает все кодировки.Аргументы:
str: Строка для маскировки. Этот аргумент преобразуется в кодировкуutf8mb4.margin1: Неотрицательное целое число, указывающее количество символов в левом конце строки для маскировки. Если значение равно 0, символы левого конца не маскируются.margin2: Неотрицательное целое число, указывающее количество символов в правом конце строки для маскировки. Если значение равно 0, символы правого конца не маскируются.mask_char: (Необязательно) Один символ для использования в качестве маскировки. По умолчанию используется'X', еслиmask_charне указан.
Возвращаемое значение:
Замаскированная строка, закодированная в той же кодировке, что и для
str, или ошибка, если любое поле имеет отрицательное значение.Если сумма значений полей больше длины аргумента, весь аргумент маскируется.
ПримечаниеФункция оптимизирована для более быстрой работы с однобайтовыми строками (имеющими одинаковую длину байтов и длину символов). Например, кодировка
utf8mb4использует только один байт для символов ASCII, поэтому функция обрабатывает строки, содержащие только символы ASCII, как однобайтовые строки.Пример:
mysql>
SELECT mask_outer('abcdef', 1, 2), mask_outer('abcdef',0, 5);+----------------------------+---------------------------+ | mask_outer('abcdef', 1, 2) | mask_outer('abcdef',0, 5) | +----------------------------+---------------------------+ | XbcdXX | aXXXXX | +----------------------------+---------------------------+ mysql>SELECT mask_outer('abcdef', 1, 2, '*'), mask_outer('abcdef',0, 5, '#');+---------------------------------+--------------------------------+ | mask_outer('abcdef', 1, 2, '*') | mask_outer('abcdef',0, 5, '#') | +---------------------------------+--------------------------------+ | *bcd** | a##### | +---------------------------------+--------------------------------+ -
Маскирует основной номер счета (PAN) платежной карты и возвращает номер, у которого все цифры, кроме последних четырех, заменены символами
'X'. Можно указать необязательный символ маскировки.Аргументы:
str: Строка для маскировки. Строка должна содержать минимум 14 и максимум 19 альфанумерических символов. Этот аргумент преобразуется в кодировкуutf8mb4.mask_char: (Необязательно) Один символ для использования в качестве маскировки. По умолчанию используется'X', еслиmask_charне указан.
Возвращаемое значение:
Замаскированный номер платежа в виде строки, закодированной в кодировке
utf8mb4, ошибка, если аргумент имеет неверную длину, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_pan(gen_rnd_pan());+-------------------------+ | mask_pan(gen_rnd_pan()) | +-------------------------+ | XXXXXXXXXXXX9102 | +-------------------------+ mysql>SELECT mask_pan(gen_rnd_pan(19));+---------------------------+ | mask_pan(gen_rnd_pan(19)) | +---------------------------+ | XXXXXXXXXXXXXXX8268 | +---------------------------+ mysql>SELECT mask_pan('a*Z');ERROR 1123 (HY000): Can't initialize function 'mask_pan'; Argument 0 is too short. -
Маскирует основной номер счета платежной карты и возвращает номер, у которого все цифры, кроме первых шести и последних четырех, заменены символами
'X'. Первые шесть цифр указывают на эмитента платежной карты. Можно указать необязательный символ маскировки.Аргументы:
str: Строка для маскировки. Строка должна иметь подходящую длину для основного номера счета, но в остальном не проверяется. Этот аргумент преобразуется в кодировкуutf8mb4.mask_char: (Необязательно) Один символ для использования в качестве маскировки. По умолчанию используется'X', еслиmask_charне указан.
Возвращаемое значение:
Замаскированный номер платежа в виде строки, закодированной в кодировке
utf8mb4, ошибка, если аргумент имеет неверную длину, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_pan_relaxed(gen_rnd_pan());+---------------------------------+ | mask_pan_relaxed(gen_rnd_pan()) | +---------------------------------+ | 551279XXXXXX3108 | +---------------------------------+ mysql>SELECT mask_pan_relaxed(gen_rnd_pan(19));+-----------------------------------+ | mask_pan_relaxed(gen_rnd_pan(19)) | +-----------------------------------+ | 462634XXXXXXXXX6739 | +-----------------------------------+ mysql>SELECT mask_pan_relaxed('a*Z');ERROR 1123 (HY000): Can't initialize function 'mask_pan_relaxed'; Argument 0 is too short.
-
Маскирует номер социального страхования США (SSN) и возвращает число, в котором все, кроме последних четырёх цифр, заменены на
'*'символы. Можно указать необязательный символ маскирования.Аргументы:
-
str: Строка для маскирования. Допустимые форматы:Девять цифр без разделителей.
Девять цифр, сгруппированных по шаблону:
xxx-xx-xxxx('-' — любой разделитель).
Этот аргумент преобразуется в
utf8mb4кодировку. mask_char: (Необязательно) Символ для маскирования. По умолчанию используется'*', еслиmask_charне задан.
Значение возврата:
Замаскированный номер социального страхования в виде строки, закодированной в
utf8mb4кодировке, сообщение об ошибке, если длина аргумента некорректна, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_ssn('909-63-6922'), mask_ssn('cdefghijk');+-------------------------+-------------------------+ | mask_ssn('909-63-6922') | mask_ssn('cdefghijk') | +-------------------------+-------------------------+ | ***-**-6922 | *******hijk | +-------------------------+-------------------------+ mysql>SELECT mask_ssn('909');ERROR 1123 (HY000): Can't initialize function 'mask_ssn'; Argument 0 is too short. mysql>SELECT mask_ssn('123456789123456789');ERROR 1123 (HY000): Can't initialize function 'mask_ssn'; Argument 0 is too long. -
-
mask_uk_nin(str[,mask_char])Маскирует номер национального страхования Соединённого Королевства (UK NIN) и возвращает число, в котором все, кроме первых двух цифр, заменены на
'*'символы. Можно указать необязательный символ маскирования.Аргументы:
-
str: Строка для маскирования. Допустимые форматы:Девять цифр без разделителей.
Девять цифр, сгруппированных по шаблону:
xxx-xx-xxxx('-' — любой разделитель).Девять цифр, сгруппированных по шаблону:
xx-xxxxxx-x('-' — любой разделитель).
Этот аргумент преобразуется в
utf8mb4кодировку. mask_char: (Необязательно) Символ для маскирования. По умолчанию используется'*', еслиmask_charне задан.
Значение возврата:
Замаскированный UK NIN в виде строки, закодированной в
utf8mb4кодировке, сообщение об ошибке, если длина аргумента некорректна, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_uk_nin('QQ 12 34 56 C'), mask_uk_nin('abcdefghi');+------------------------------+--------------------------+ | mask_uk_nin('QQ 12 34 56 C') | mask_uk_nin('abcdefghi') | +------------------------------+--------------------------+ | QQ ** ** ** * | ab******* | +------------------------------+--------------------------+ mysql>SELECT mask_uk_nin('909');ERROR 1123 (HY000): Can't initialize function 'mask_uk_nin'; Argument 0 is too short. mysql>SELECT mask_uk_nin('abcdefghijk');ERROR 1123 (HY000): Can't initialize function 'mask_uk_nin'; Argument 0 is too long. -
-
Маскирует универсальный уникальный идентификатор (UUID) и возвращает число, в котором все значимые символы заменены на
'*'символы. Можно указать необязательный символ маскирования.Аргументы:
str: Строка для маскирования. Допустимый формат:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где 'X' — любая цифра, а '-' — любой разделитель. Этот аргумент преобразуется вutf8mb4кодировку.mask_char: (Необязательно) Символ для маскирования. По умолчанию используется'*', еслиmask_charне задан.
Значение возврата:
Замаскированный UUID в виде строки, закодированной в
utf8mb4кодировке, сообщение об ошибке, если длина аргумента некорректна, илиNULL, еслиstrимеет неверный формат или содержит многобайтовый символ.Пример:
mysql>
SELECT mask_uuid(gen_rnd_uuid());+--------------------------------------+ | mask_uuid(gen_rnd_uuid()) | +--------------------------------------+ | ********-****-****-****-************ | +--------------------------------------+ mysql>SELECT mask_uuid('909');ERROR 1123 (HY000): Can't initialize function 'mask_uuid'; Argument 0 is too short. mysql>SELECT mask_uuid('123e4567-e89b-12d3-a456-426614174000-123e4567-e89b-12d3');ERROR 1123 (HY000): Can't initialize function 'mask_uuid'; Argument 0 is too long.
Функции компонента генерации случайных данных
Функции компонента в этом разделе генерируют случайные значения для различных типов данных. По возможности, сгенерированные значения имеют характеристики, зарезервированные для демонстрационных или тестовых значений, чтобы избежать их путаницы с легитимными данными. Например, gen_rnd_us_phone() возвращает номер телефона США, который использует код зоны 555, который не назначен для номеров телефонов в реальном использовании. В описаниях отдельных функций описываются любые исключения из этого принципа.
-
Генерирует случайное число, выбранное из указанного диапазона.
Аргументы:
lower: Целое число, которое задает нижнюю границу диапазона.upper: Целое число, которое задает верхнюю границу диапазона, которая не должна быть меньше нижней границы.
Возвращаемое значение:
Случайное целое число (закодированное в кодировке
utf8mb4) в диапазоне отlowerдоupperвключительно, илиNULL, если аргументupperменьшеlower.ПримечаниеДля лучшего качества случайных значений используйте
RAND()вместо этой функции.Пример:
mysql>
SELECT gen_range(100, 200), gen_range(-1000, -800);+---------------------+------------------------+ | gen_range(100, 200) | gen_range(-1000, -800) | +---------------------+------------------------+ | 177 | -917 | +---------------------+------------------------+ mysql>SELECT gen_range(1, 0);+-----------------+ | gen_range(1, 0) | +-----------------+ | NULL | +-----------------+ -
Генерирует случайный номер социального страхования Канады (SIN) в формате
. Сгенерированный номер проходит алгоритм проверки Луна, который обеспечивает согласованность этого номера.AAA-BBB-CCCПредупреждениеЗначения, возвращаемые из
gen_rnd_canada_sin(), должны использоваться только в тестовых целях и не подходят для публикации. Нет никакой гарантии, что данное возвращаемое значение не назначено легитимному номеру SIN Канады. Если необходимо опубликовать результатgen_rnd_canada_sin(), рассмотрите возможность маскировки его с помощьюmask_canada_sin().Аргументы:
Нет.
Возвращаемое значение:
Случайный номер SIN Канады в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_canada_sin();+----------------------+ | gen_rnd_canada_sin() | +----------------------+ | 046-454-286 | +----------------------+ -
gen_rnd_email(name_size,surname_size,domain)Генерирует случайный адрес электронной почты в формате
random_name.random_surname@domain.Аргументы:
name_size: (Необязательно) Целое число, которое задает количество символов в имени части адреса. По умолчанию пять, еслиname_sizeне задан.surname_size: (Необязательно) Целое число, которое задает количество символов в части фамилии адреса. По умолчанию семь, еслиsurname_sizeне задан.domain: (Необязательно) Строка, которая задает часть домена адреса. По умолчаниюexample.com, еслиdomainне задан.
Возвращаемое значение:
Случайный адрес электронной почты в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_email(name_size = 4, surname_size = 5, domain = 'mynet.com');+----------------------------------------------------------------------+ | gen_rnd_email(name_size = 4, surname_size = 5, domain = 'mynet.com') | +----------------------------------------------------------------------+ | lsoy.qwupp@mynet.com | +----------------------------------------------------------------------+ mysql>SELECT gen_rnd_email();+---------------------------+ | gen_rnd_email() | +---------------------------+ | ijocv.mwvhhuf@example.com | +---------------------------+ -
Генерирует случайный международный банковский номер счета (IBAN) в формате
. Сгенерированная строка начинается с двухбуквенного кода страны, двух контрольных цифр, вычисленных в соответствии со спецификацией IBAN, и случайных буквенно-цифровых символов до требуемого размера.AAAABBBBCCCCDDDDПредупреждениеЗначения, возвращаемые из
gen_rnd_iban(), должны использоваться только в тестовых целях и не подходят для публикации, если используются с действительным кодом страны. Нет никакой гарантии, что данное возвращаемое значение не назначено легитимному банковскому счету. Если необходимо опубликовать результатgen_rnd_iban(), рассмотрите возможность маскировки его с помощьюmask_iban().Аргументы:
country: (Необязательно) Двухбуквенный код страны; значение по умолчанию —ZZsize: (Необязательно) Количество значимых символов; по умолчанию 16, минимум 15, максимум 34
Возвращаемое значение:
Случайный IBAN в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_iban();+-----------------------------+ | gen_rnd_iban() | +-----------------------------+ | ZZ79 3K2J WNH9 1V0DI | +-----------------------------+ -
Генерирует случайный основной номер счета платежной карты. Номер проходит проверку Луна (алгоритм, который выполняет проверку контрольной суммы по контрольной цифре).
ПредупреждениеЗначения, возвращаемые из
gen_rnd_pan(), должны использоваться только в тестовых целях и не подходят для публикации. Нет никакой гарантии, что данное возвращаемое значение не назначено легитимному платежному счету. Если необходимо опубликовать результатgen_rnd_pan(), рассмотрите возможность маскировки его с помощьюmask_pan()илиmask_pan_relaxed().Аргументы:
size: (Необязательно) Целое число, которое задает размер результата. По умолчанию 16, еслиsizeне задан. Если задано,sizeдолжно быть целым числом в диапазоне от 12 до 19.
Возвращаемое значение:
Случайный платежный номер в виде строки или ошибка, если задан аргумент
sizeза пределами допустимого диапазона.Пример:
mysql>
SELECT mask_pan(gen_rnd_pan());+-------------------------+ | mask_pan(gen_rnd_pan()) | +-------------------------+ | XXXXXXXXXXXX5805 | +-------------------------+ mysql>SELECT mask_pan(gen_rnd_pan(19));+---------------------------+ | mask_pan(gen_rnd_pan(19)) | +---------------------------+ | XXXXXXXXXXXXXXX5067 | +---------------------------+ mysql>SELECT mask_pan_relaxed(gen_rnd_pan());+---------------------------------+ | mask_pan_relaxed(gen_rnd_pan()) | +---------------------------------+ | 398403XXXXXX9547 | +---------------------------------+ mysql>SELECT mask_pan_relaxed(gen_rnd_pan(19));+-----------------------------------+ | mask_pan_relaxed(gen_rnd_pan(19)) | +-----------------------------------+ | 578416XXXXXXXXX6509 | +-----------------------------------+ mysql>SELECT gen_rnd_pan(20);ERROR 1123 (HY000): Can't initialize function 'gen_rnd_pan'; Minimal value of argument 0 is 14. -
Генерирует случайный номер социального страхования США в формате
. ЧастьAAA-BB-CCCCAAAбольше 900, что является характеристиками, не используемыми для легитимных номеров социального страхования.Аргументы:
Нет.
Возвращаемое значение:
Случайный номер социального страхования в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_ssn();+---------------+ | gen_rnd_ssn() | +---------------+ | 951-26-0058 | +---------------+ -
Генерирует случайный номер национального страхования Великобритании (UK NIN) в девятисимвольном формате. NIN начинается с двухсимвольного префикса, случайно выбранного из набора допустимых префиксов, шести случайных чисел и одного символа суффикса, случайно выбранного из набора допустимых суффиксов.
ПредупреждениеЗначения, возвращаемые из
gen_rnd_uk_nin(), должны использоваться только в тестовых целях и не подходят для публикации. Нет никакой гарантии, что данное возвращаемое значение не назначено легитимному NIN. Если необходимо опубликовать результатgen_rnd_uk_nin(), рассмотрите возможность маскировки его с помощьюmask_uk_nin().Аргументы:
Нет.
Возвращаемое значение:
Случайный UK NIN в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_uk_nin();+----------------------+ | gen_rnd_uk_nin() | +----------------------+ | QQ123456C | +----------------------+ -
Генерирует случайный номер телефона США в формате
1-555-. Код зоны 555 не используется для легитимных номеров телефонов.AAA-BBBBАргументы:
Нет.
Возвращаемое значение:
Случайный номер телефона США в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_us_phone();+--------------------+ | gen_rnd_us_phone() | +--------------------+ | 1-555-682-5423 | +--------------------+ -
Генерирует случайный универсальный уникальный идентификатор (UUID), сегментированный с помощью тире.
Аргументы:
Нет.
Возвращаемое значение:
Случайный UUID в виде строки, закодированной в кодировке
utf8mb4.Пример:
mysql>
SELECT gen_rnd_uuid();+--------------------------------------+ | gen_rnd_uuid() | +--------------------------------------+ | 123e4567-e89b-12d3-a456-426614174000 | +--------------------------------------+
Функции компонента управления маскировкой словарей
Функции этого раздела манипулируют словарями терминов и выполняют административные операции маскирования, основанные на них. Все эти функции требуют привилегии MASKING_DICTIONARIES_ADMIN.
При создании словаря терминов он становится частью реестра словарей и получает имя, используемое другими функциями словарей.
-
Очистить данные из таблицы словарей маскирования в кэш памяти. Требуется привилегия
MASKING_DICTIONARIES_ADMIN. -
masking_dictionary_remove(dictionary_name)Удаляет словарь и все его термины из реестра словарей. Эта функция требует привилегии
MASKING_DICTIONARIES_ADMIN.Аргументы:
dictionary_name: Строка, содержащая имя словаря для удаления из таблицы словарей. Этот аргумент преобразуется в кодировкуutf8mb4.
Возвращаемое значение:
Строка, указывающая, выполнено ли удаление успешно.
1указывает на успех.NULLуказывает, что имя словаря не найдено.Пример:
mysql>
SELECT masking_dictionary_remove('mydict');+-------------------------------------+ | masking_dictionary_remove('mydict') | +-------------------------------------+ | 1 | +-------------------------------------+ mysql>SELECT masking_dictionary_remove('no-such-dict');+-------------------------------------------+ | masking_dictionary_remove('no-such-dict') | +-------------------------------------------+ | NULL | +-------------------------------------------+ -
masking_dictionary_term_add(dictionary_name,term_name)Добавляет один термин в указанный словарь. Эта функция требует привилегии
MASKING_DICTIONARIES_ADMIN.ВажноСловари и их термины сохраняются в таблице в схеме
mysql. Все термины в словаре доступны любому пользователю, если этот пользователь выполняетgen_dictionary()многократно. Избегайте добавления конфиденциальной информации в словари.Каждый термин определяется по имени словаря.
masking_dictionary_term_add()позволяет добавить по одному термину в словарь за раз.Аргументы:
dictionary_name: Строка, предоставляющая имя словаря. Этот аргумент преобразуется в кодировкуutf8mb4.term_name: Строка, определяющая имя термина в таблице словарей. Этот аргумент преобразуется в кодировкуutf8mb4.
Возвращаемое значение:
Строка, указывающая, выполнено ли добавление термина успешно.
1указывает на успех.NULLуказывает на ошибку. Ошибка добавления термина может произойти по нескольким причинам, включая:Термин с заданным именем уже добавлен.
Имя словаря не найдено.
Пример:
mysql>
SELECT masking_dictionary_term_add('mydict','newterm');+-------------------------------------------------+ | masking_dictionary_term_add('mydict','newterm') | +-------------------------------------------------+ | 1 | +-------------------------------------------------+ mysql>SELECT masking_dictionary_term_add('mydict','');+------------------------------------------+ | masking_dictionary_term_add('mydict','') | +------------------------------------------+ | NULL | +------------------------------------------+ -
masking_dictionary_term_remove(dictionary_name,term_name)Удаляет один термин из указанного словаря. Эта функция требует привилегии
MASKING_DICTIONARIES_ADMIN.Аргументы:
dictionary_name: Строка, предоставляющая имя словаря. Этот аргумент преобразуется в кодировкуutf8mb4.term_name: Строка, определяющая имя термина в таблице словарей. Этот аргумент преобразуется в кодировкуutf8mb4.
Возвращаемое значение:
Строка, указывающая, выполнено ли удаление термина успешно.
1указывает на успех.NULLуказывает на ошибку. Ошибка удаления термина может произойти по нескольким причинам, включая:Термин с заданным именем не найден.
Имя словаря не найдено.
Пример:
mysql>
SELECT masking_dictionary_term_add('mydict','newterm');+-------------------------------------------------+ | masking_dictionary_term_add('mydict','newterm') | +-------------------------------------------------+ | 1 | +-------------------------------------------------+ mysql>SELECT masking_dictionary_term_remove('mydict','');+---------------------------------------------+ | masking_dictionary_term_remove('mydict','') | +---------------------------------------------+ | NULL | +---------------------------------------------+
Функции компонента генерации словарей
Функции этого раздела манипулируют словарями терминов и выполняют операции генерации, основанные на них.
При создании словаря терминов он становится частью реестра словарей и получает имя, используемое другими функциями словарей.
-
gen_blocklist(str,from_dictionary_name,to_dictionary_name)Заменяет термин, присутствующий в одном словаре, термином из второго словаря и возвращает заменяющий термин. Это маскирует исходный термин заменой.
Аргументы:
term: Строка, обозначающая термин для замены. Этот аргумент преобразуется в кодировкуutf8mb4.from_dictionary_name: Строка, обозначающая словарь, содержащий термин для замены. Этот аргумент преобразуется в кодировкуutf8mb4.to_dictionary_name: Строка, обозначающая словарь, из которого выбрать заменяющий термин. Этот аргумент преобразуется в кодировкуutf8mb4.
Возвращаемое значение:
Строка, закодированная в кодировке
utf8mb4, случайным образом выбранная изto_dictionary_nameкак замена дляterm, илиterm, если он не появляется вfrom_dictionary_name, или ошибка, если имя любого словаря отсутствует в реестре словарей.ПримечаниеЕсли термин для замены присутствует в обоих словарях, возможно, что возвращаемое значение будет тем же термином.
Пример:
mysql>
SELECT gen_blocklist('Berlin', 'DE_Cities', 'US_Cities');+---------------------------------------------------+ | gen_blocklist('Berlin', 'DE_Cities', 'US_Cities') | +---------------------------------------------------+ | Phoenix | +---------------------------------------------------+ -
gen_dictionary(dictionary_name)Возвращает случайный термин из словаря.
Аргументы:
dictionary_name: Строка, обозначающая словарь, из которого выбрать термин. Этот аргумент преобразуется в кодировкуutf8mb4.
Возвращаемое значение:
Случайный термин из словаря как строка, закодированная в кодировке
utf8mb4, илиNULL, если имя словаря отсутствует в реестре словарей.Пример:
mysql>
SELECT gen_dictionary('mydict');+--------------------------+ | gen_dictionary('mydict') | +--------------------------+ | My term | +--------------------------+ mysql>SELECT gen_dictionary('no-such-dict');ERROR 1123 (HY000): Can't initialize function 'gen_dictionary'; Cannot access dictionary, check if dictionary name is valid.
© 2025 Oracle
Licensed under the GPLv2 License.