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 ).
Read syntax diagramSkip visual syntax diagramDATA_MASK(expression ,mask-type,mask-parameters,mask-format,seed)

O esquema é SYSIBM.

MÁSCARA DE DADOS
O tipo de dados do valor retornado é igual ao tipo de dados da expressão.
A função escalar DATA_MASK suporta apenas bancos de dados Unicode.
Nota: A saída mascarada produzida pela função escalar DATA_MASK pode mudar conforme os algoritmos de mascaramento evoluem e a função securehash subjacente é atualizada ou mudada.
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
Tabela 1. Tipos de máscara válidos
Valor INT Nome do mascaramento Tipo de Dados de Destino Descrição
0 EDITAR VARCHAR & CHAR. Todos os outros tipos de dados editados para um valor padrão Executa a edição de dados integral na entrada com o valor de cadeia fornecido pelo atributo mask-parameters ..
1 COMPRIMENTO DE PRESERVAÇÃO DE EDIÇÃO VARCHAR & CHAR. Todos os outros tipos de dados editados para o valor padrão. O primeiro caractere em mask-parameters é um caractere de edição de dados Saída mascarada é um caractere de edição de dados repetido para o comprimento do valor de entrada.
2 SUBSTITUIR Todos os tipos de dados suportados Para " VARCHAR e " CHAR, o " secureHash(, o "SHA-256 e o " base64 seguintes são codificados. O comprimento da coluna deve ser de pelo menos 43 bytes para evitar colisões. Para todos os outros tipos de dados, a ofuscação é executada Se um valor seed não for fornecido, o valor de edição de dados padrão para o tipo de dado será retornado.
3 EDIÇÃO PARCIAL VARCHAR & CHAR. Todos os outros tipos de dados editados para o valor correspondente padrão Avance a edição de dados usando padrões que são fornecidos como expressões regulares ou uma expressão de fatia de cadeia pelo atributo mask-parameters
4 PRESERVAÇÃO DE FORMATO OFUSCAÇÃO Todos os tipos de dados suportados Mascaramento por ofuscação com validação de entrada.. O formato de saída corresponde ao formato de entrada original especificado pelo atributo mask-format . Consulte Tabela 4 para todo o formato válido disponível. O valor mask-format não deve ser usado para tipos de dados DATE e TIMESTAMP . Se o valor de entrada não corresponder a um valor conhecido no dicionário do formato especificado pelo atributo mask-format , o valor será editado com o valor padrão. Se o atributo seed estiver vazio ou nulo, um valor seed aleatório será usado.
5 DATA DE MATURAÇÃO DATE & TIMESTAMP. Todos os outros tipos de dados editados para o valor correspondente padrão Mascara a entrada envelhecendo. O mask-parameters controla como a data é envelhecida
7 IDENTIFIER STRING & NUMERIC data-types. Todos os outros tipos de dados editados para o valor correspondente padrão Os caracteres são substituídos por caracteres e os dígitos são substituídos por dígitos. Todos os outros caracteres não mudam. Se o atributo seed estiver vazio ou nulo, um valor seed aleatório será usado.
10 FORMATO PRESERVANDO A FABRICAÇÃO Todos os tipos de dados suportados Mesmo valor que o valor FORMAT PRESERVING OBFUSCATION que está mascarando por ofuscação, mas sem validação de entrada. Se o atributo seed estiver vazio ou nulo, um valor seed aleatório será usado.
11 DESLOCAMENTO NUMÉRICO Apenas para tipos de dados numéricos Mascara a entrada deslocando-a. O atributo mask-parameters contém um valor duplo que é usado como uma porcentagem pela qual deslocar o valor de entrada.
Nota: Para operações de ofuscação e substituição envolvendo valores de entrada NULL, a fabricação e a substituição são baseadas em uma entrada aleatória que produz saída aleatória.
Tabela 2. Valores padrão
tipo de dados, Valor-padrão
tipo de dados numéricos 0 (Nota para diferentes tipos de dados numéricos 0 é representada de forma diferente)
Tipo de dados STRING Se o comprimento da coluna for menor que 10 caracteres, a cadeia inteira será editada com X até o comprimento da coluna, caso contrário, retornará XXXXXXXXXX
DATE 2001-01-01
TIMESTAMP 2001-01-01-00.00.00.000000
TIME 00.00.00
BOOLEAN 0
parâmetros de máscara
A expressão deve retornar um valor que seja um tipo de dados CHAR ou VARCHAR integrado
Tabela 3.. mask-type e mask-parameters válidos
máscara-tipo Máscara válida-parâmetros Exemplo
EDITAR O valor de sequência no qual a entrada deve ser editada. '*' ou 'X' ou 'XXX'
COMPRIMENTO DE PRESERVAÇÃO DE EDIÇÃO Representa o caractere de edição de dados Se a sequência for mais de um caractere, apenas o primeiro caractere será usado.. '*' ou 'X'
EDIÇÃO PARCIAL Uma expressão regular ou expressão de fatia que identifica as partes de entrada a serem editadas. Também identifica o caractere a ser usado para edição de dados 'SLC=0,3,0,X;SLC=0,4,1,X' ou '"RGX=^\\d{3}[- ]?(\\d{2})##char=X;SLC=0,3,0'
PRESERVAÇÃO DE FORMATO OFUSCAÇÃO Somente para os tipos de dados DATE e TIMESTAMP O valor representa um intervalo de saída mascarado ou intervalo de tempo. 'minDate=2001-01-01;maxDate=2099-12-31', 'maxDate=2089-12-31', 'same=quarter', 'same=week', 'same=year' ou 'same=month'
DATA DE MATURAÇÃO Controla como o valor de data é envelhecido Ele deve estar no formato "days= + /-" 'days=1' ou 'days=-5'
DESLOCAMENTO NUMÉRICO Contém um valor inteiro que é usado como uma porcentagem pela qual deslocar o valor de entrada. '5' ou '-65'
FORMATO PRESERVANDO A FABRICAÇÃO Somente para os tipos de dados DATE e TIMESTAMP O valor representa um intervalo de saída mascarado ou intervalo de tempo 'minDate=2001-01-01;maxDate=2099-12-31', 'maxDate=2089-12-31', 'same=quarter', 'same=week', 'same=year' ou 'same=month'
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.
Os seguintes formatos válidos para FORMAT PRESERVE OBFUSCATION e FORMAT PRESERVE FABRICATION Obfuscation são suportados.
Um b C d T F G A I F M L Mi N As l Q A S T U i W
A
  • AirportCodes
  • AlabamaStateDriversLicense
  • AlaskaStateDriversLicense
  • AlbertaProvinceDriversLicense
  • AmericanExpressCard
  • ArizonaStateDriversLicense
  • ArkansasStateDriversLicense
B
  • BIC
  • BritishColumbiaProvinceDriversLicense
C
  • CaliforniaStateDriversLicense
  • CageCode
  • CanadianSIN
  • CaPostalCode
  • CAProvinceCodes
  • CAProvinceNames
  • CitiesEnglish
  • ColoradoStateDriversLicense
  • ConnecticutStateDriversLicense
  • CountryCodes_CaseSensitive
  • Países_Inglês CreditCard
D
  • Data
  • Data/hora
  • DelawareStateDriversLicense
  • DiscoverCard
  • DinersClubCard
  • DinersClubInternationalCard
  • DinersClubUSACanadaCard
  • DUNS
E
  • EmploymentStatus
  • EnglishEmailCaseSensitive
  • EnglishNIN
  • Etnia
  • EyeColors
F
  • FloridaStateDriversLicense
  • Fortune1000
  • FrenchINSEE
G
  • Gênero
  • GeorgiaStateDriversLicense
  • GermanVehicleRegistration
H
  • HairColors
  • HawaiiStateDriversLicense
  • HealthInsuranceClaimNumber
  • Passatempos
  • Honoríficos
  • Nome do host
I
  • ICD10Codes
  • IdahoStateDriversLicense
  • IllinoisStateDriversLicense
  • IMEI
  • INCOTermos
  • IndianaStateDriversLicense
  • IowaStateDriversLicense
  • IP
  • IPV6Address
  • IrelandEircode
  • ISIN
  • ISOStateProvinceCode
  • ItalianFiscalCode
J
  • JapanCreditBureauCard
K
  • KansasStateDriversLicense
  • KentuckyStateDriversLicense
L
  • LanguageList
  • Latitude
  • Longitude
  • LouisianaStateDriversLicense
M
  • MacAddress
  • MaineStateDriversLicense
  • ManitobaProvinceDriversLicense
  • MaritalStatus
  • MarylandStateDriversLicense
  • MassachusettsStateDriversLicense
  • MasterCard
  • MichiganStateDriversLicense
  • MinnesotaStateDriversLicense
  • MississippiStateDriversLicense
  • MissouriStateDriversLicense
  • MontanaStateDriversLicense
  • Mês
N
  • NameSuffix
  • NebraskaStateDriversLicense
  • NevadaStateDriversLicense
  • NewBrunswickProvinceDriversLicense
  • NewfoundlandandLabradorProvinceDriversLicense
  • NewHampshireDriversLicense
  • NewJerseyStateDriversLicense
  • NewMexicoStateDriversLicense
  • NewYorkStateDriversLicense
  • NorthAmericaPhone
  • NorthCarolinaStateDriversLicense
  • NorthDakotaStateDriversLicense
  • NovaScotiaProvinceDriversLicense
O
  • OhioStateDriversLicense
  • OklahomaStateDriversLicense
  • OntarioProvinceDriversLicense
  • OregonStateDriversLicense
  • Organização
P
  • PennsylvaniaStateDriversLicense
  • Porcentagem
  • PoliticalParties
  • PrinceEdwardIslandProvinceDriversLicense
Q
  • QuebecProvinceDriversLicense
R
  • Relacionamento
  • Religiões
  • RhodeIslandStateDriversLicense
S
  • SaskatchewanProvinceDriversLicense
  • SouthCarolinaStateDriversLicense
  • SouthDakotaStateDriversLicense
  • SpanishNIF
  • SSN4
  • StateProvinceName
T
  • TennesseeStateDriversLicense
  • TexasStateDriversLicense
U
  • UKPostCode
  • UKProvinceCodes
  • UniversalProductCode
  • País dos EUA
  • Código USSIC
  • USStateCodes
  • USStateNames
  • USAddressSimple
  • UsaSocialSecurityNumber
  • USFirstName
  • USLastName
  • USNationalDrugCode
  • USPersonName
  • USRoutingTransitNumber
  • Código USSIC
  • USStateCapitals
  • USStreetNames
  • USZipCodes
  • UtahStateDriversLicense
V
  • VehicleIdentificationNumber
  • VermontStateDriversLicense
  • VirginiaStateDriversLicense
  • VisaCard
W
  • WashingtonStateDriversLicense
  • WashingtonDCStateDriversLicense
  • WestVirginiaStateDriversLicense
  • WisconsinStateDriversLicense
  • WyomingStateDriversLicense

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.174000
O 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) selected
O 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