Funções de mascaramento de dados predefinidas - Amazon Aurora

Funções de mascaramento de dados predefinidas

A extensão pg_columnmask fornece funções utilitárias integradas escritas em linguagem C (para execução mais rápida) que podem ser usadas como expressão de mascaramento para políticas pg_columnmask.

mask_text

Uma função para mascarar dados de texto com opções de visibilidade configuráveis.

Argumentos

Parâmetro DataType Descrição
input TEXT

A string de texto original a ser mascarada.

mask_char CHAR(1)

Caractere usado para mascarar (padrão: “X”).

visible_prefix INT

Número de caracteres no início do texto de entrada que permanecerão sem máscara (padrão: 0).

visible_suffix INT

Número de caracteres no fim do texto de entrada que permanecerão sem máscara (padrão: 0).

use_hash_mask BOOLEAN

Se TRUE, usa um mascaramento baseado em hash em vez de mask_char (padrão: FALSE).

exemplo de usar diferentes opções de mascaramento

Mascare toda a string de entrada com o caractere “X” padrão.

postgres=> SELECT pgcolumnmask.mask_text('Hello World'); mask_text ------------- XXXXXXXXXXX

Use o argumento mask_char para mascarar a entrada de texto usando um caractere diferente.

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*'); mask_text ------------- ***********

Use os parâmetros visible_prefix e visible_suffix para controlar quantos caracteres permanecem sem máscara no início e no final do texto.

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 5, 1); mask_text ------------- Hello*****d

Quando use_hash_mask é true, a string de entrada é mascarada usando caracteres aleatórios, o argumento mask_char é ignorado, mas visible_prefix ainda visible_suffix ainda são respeitados

postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 2, 2, true); mask_text ------------- Hex36dOHild

mask_timestamp

Parâmetro DataType Descrição
ts_to_mask TIMESTAMP

O carimbo de data/hora original a ser mascarado.

mask_part TEXT

Especifica qual parte do carimbo de data/hora deve ser mascarada (padrão: “tudo”). Valores válidos: “ano”, “mês”, “dia”, “hora”, “minuto”, “segundo”, “tudo”.

mask_value TIMESTAMP

O valor do carimbo de data/hora a ser usado para mascaramento (padrão: “1900-01-01 00:00:00”).

exemplo de usar mask_timestamps

Esses exemplos demonstram o mascaramento completo do carimbo de data/hora em um valor padrão, o mascaramento parcial de componentes específicos do carimbo de data/hora (somente ano) e o mascaramento com um valor de substituição personalizado.

Mascarar completamente o valor de entrada para o carimbo de data/hora padrão

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00'); mask_timestamp --------------------- 1900-01-01 00:00:00

Como mascarar apenas uma parte do carimbo de data/hora, por exemplo, apenas o ano

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'year'); mask_timestamp --------------------- 1900-06-15 14:30:00

Para alterar o valor mascarado do carimbo de data/hora, use o argumento mask_value.

postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'all', '2012-12-12 12:12:12'); mask_timestamp --------------------- 2012-12-12 12:12:12

mask_timestamp

Uma função para mascarar endereços de e-mail, mas preservar a estrutura.

Parâmetro DataType Descrição
input TEXT

O endereço de e-mail original a ser mascarado.

mask_char CHAR(1)

Caractere usado para mascarar (padrão: “X”).

mask_local BOOLEAN

Se TRUE, mascara a parte local do e-mail (antes de @) (padrão: TRUE).

mask_domain BOOLEAN

Se TRUE, mascara a parte do domínio do e-mail (após @) (padrão: TRUE).

exemplo de usar mask_email

Esses exemplos demonstram o mascaramento de e-mail completo, os caracteres de máscara personalizados e o mascaramento seletivo da parte local ou da parte do domínio do endereço de e-mail.

Mascaramento completo

postgres=> SELECT pgcolumnmask.mask_email('user@example.com'); mask_email ------------------ XXXX@XXXXXXX.com

Usar mask_char para alterar o caractere usado para mascarar

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*'); mask_email ------------------ ****@*******.com

Usar mask_local e mask_domain para controlar o mascaramento no local e no domínio

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', true, false); mask_email ------------------ ****@example.com postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', false, true); mask_email ------------------ user@*******.com