DATA_MASK função escalar
É possível usar a função escalar integrada DATA_MASK para executar edição de dados parcial, mascaramento de preservação de formato, ofuscação criptográfica forte e tokenização de preservação de integridade. A função produz dados mascarados que podem ser usados por ferramentas de análise para criar insights sem revelar dados sensíveis. Você usa a função DATA_MASK na definição de mascaramento de uma instrução CREATE MASK
Observação: essa função escalar está atualmente disponível em Db2 11.5.9 e posteriores para as seguintes plataformas de 64 bits Linux :
- AMD ( linuxamd64 ).
- Z Linux (linux390x64)..
- Power PC ( linuxppcle64 ).
O esquema é SYSIBM.
- MÁSCARA DE DADOS
- O tipo de dados do valor retornado é igual ao tipo de dados da expressão. expressão
- Uma expressão que retorna um valor de qualquer tipo de dados integrado que não seja CLOB, BLOB E DBCLOB, VARGRAPHIC, GRAPHIC e XML tipo de máscara
- Uma expressão que especifica operação de mascaramento a ser executada. Consulte a Tabela 1 para operações de mascaramento disponíveis. A expressão deve retornar um valor que seja um INTEGER integrado.Nota: Se o valor não for do tipo INTEGER, ele será implicitamente convertido para INTEGER antes de avaliar a função
parâmetros de máscara
- A expressão deve retornar um valor que seja um tipo de dados CHAR ou VARCHAR integrado formato de máscara
- A expressão deve retornar um valor que seja um tipo de dados CHAR ou VARCHAR integrado Ele deve ser um dos formatos da tabela 4 abaixo que representa a expressão.
Exemplos
O exemplo a seguir mostra a sintaxe de comandos para uma operação REDACT em que mask-type tem um valor zero e REDACT PRESERVE LENGTH tem um valor mask-type de 1. O tipo de dados é VARCHAR Para este exemplo, a tabela EMPLOYEE tem pelo menos um registro em que FIRST_NAME é John:
SELECT DATA_MASK(FIRST_NAME, 0, 'X','','') FROM EMPLOYEE
1
----------
X
1 record(s) selected
SELECT DATA_MASK(FIRST_NAME, 0, 'XX','','') FROM EMPLOYEE
1
----------
XX
1 record(s) selected.
SELECT DATA_MASK(FIRST_NAME, 1, 'X','','') FROM EMPLOYEE
1
----------
XXXX
1 record(s) selected.
O exemplo a seguir mostra a sintaxe de comando para executar uma operação
SUBSTITUTE em que mask-type tem um valor de 2 e DECFLOAT é o tipo de dados de entrada:VALUES DATA_MASK(DECFLOAT(12.345),2,'','','0123456789abcdef')
1
------------------------------------------
5.9549086170364273E+307
1 record(s) selected.O exemplo a seguir mostra a sintaxe de comando para executar uma operação SUBSTITUTE em que mask-type tem um valor de 2 e TIMESTAMP é o tipo de dados de entrada:VALUES DATA_MASK(TIMESTAMP('2022-09-23 23:21:56'),2,'','','0123456789abcdef')
1
--------------------------
2074-08-26-21.06.57.153000
1 record(s) selected.O exemplo a seguir mostra a sintaxe de comando para executar uma operação PARTIAL REDACT em que mask-type tem um valor 3. A operação de exemplo usa expressões regulares e de fatia que editam o meio e os primeiros quatro caracteres a partir do final da entrada:VALUES DATA_MASK(VARCHAR('9038-3434-2345'),3,'RGX="^\d{4}[-]?(\d{4})"##char=A;SLC=0,4,1,Y','','')
1
--------------
9038-AAAA-YYYY
1 record(s) selected.O exemplo a seguir mostra a sintaxe de comando para executar uma operação FORMAT PRESERVE em que mask-type tem um valor de 4 e o formato de entrada é USFirstName:VALUES DATA_MASK(CAST('John' as VARCHAR(10)), 4, '','USFirstName','0123456789abcdef')
1
----------
winfred
1 record(s) selected.O exemplo a seguir mostra que a sintaxe de comando para executar uma FORMAT PRESERVING OBFUSCATION operação mask-type tem um valor de 4 e o formato de entrada é ArkansasStateDriversLicense:VALUES DATA_MASK(VARCHAR('900000000'),4,'','ArkansasStateDriversLicense','0123456789abcdef')
1
---------
982576755
1 record(s) selected.O exemplo a seguir mostra a sintaxe de comando para executar uma operação FORMAT PRESERVING OBFUSCATION em que mask-type tem um valor de 4 e o formato de entrada é UsaSocialSecurityNumber:VALUES DATA_MASK(VARCHAR('123-45-6789'),4,'','UsaSocialSecurityNumber','0123456789abcdef')
1
-----------
680-47-4470
1 record(s) selected.O exemplo a seguir mostra a sintaxe de comando para executar uma operação FORMAT PRESERVING OBFUSCATION em que mask-type tem um valor de 4 e o formato de entrada é TIMESTAMP:VALUES DATA_MASK(TIMESTAMP('2022-11-23 11:10:23.324'),4,'minDate=2001-01-01;maxDate=2099-12-31','','0123456789abcdef')
1
--------------------------
2068-10-15-03.59.29.174000O exemplo a seguir mostra a sintaxe de comando para executar uma operação DATE AGING em que DATE é o formato de entrada e TIMESTAMP é o tipo de dados de entrada:VALUES DATA_MASK(DATE('2020-01-29'), 5, 'days=2', '', '')
1
----------
2020-01-31
1 record(s) selected.
VALUES DATA_MASK(TIMESTAMP('2022-11-23 11:10:23.324'), 5, 'days=-2', '', '')
1
--------------------------
2022-11-21-11.10.23.324000
1 record(s) selected.O exemplo a seguir mostra a sintaxe de comando para executar uma operação IDENTIFIER :VALUES DATA_MASK(VARCHAR('AB1234'),7,'','','0123456789abcdef')
1
------
TW9980
1 record(s) selected.
VALUES DATA_MASK(VARCHAR('AB#12@34'),7,'','','0123456789abcdef')
1
--------
TW#99@80
1 record(s) selectedO exemplo a seguir mostra a diferença entre uma operação FORMAT PRESERVING FABRICATION (mask-type 10) em que a validação de entrada não ocorre e um FORMAT PRESERVING OBFUSCATION (mask-type 4) em que as entradas são validadas:VALUES DATA_MASK(CAST('hfhfhf' as VARCHAR(10)),10,'','USFirstName','0123456789abcdef')
1
----------
kimiko
1 record(s) selected.
VALUES DATA_MASK(CAST('hfhfhf' as VARCHAR(10)),4,'','USFirstName','0123456789abcdef')
1
----------
XXXXXXXXXX
1 record(s) select