Mascaramento de dados usando a semântica Mask at Read em Data Virtualization

Configure a máscara na semântica de leitura para que Data Virtualization ela mascare seus dados antes de avaliar a consulta.

Sobre essa tarefa

Habilite a configuração global Máscara na leitura para aplicar regras de mascaramento aos seus dados antes de Data Virtualization avaliar qualquer parte da consulta. A configuração padrão é Máscara no resultado, que aplica o mascaramento ao conjunto de resultados.

Com o Mask at Read, você adiciona uma camada extra de proteção aos seus dados, controlando como as regras de mascaramento de colunas definidas por IBM® Knowledge Catalog são aplicadas.

Para obter mais informações sobre tabelas de mascaramento em Data Virtualization com IBM Knowledge Catalog, consulte Mascaramento de dados virtuais em Data Virtualization.

A máscara em Read afeta as seguintes cláusulas:
  • WHERE
  • JOIN (INTERNO / ESQUERDA / DIREITA / EXTERNO ESQUERDO / EXTERNO DIREITO / EXTERNO COMPLETO)
  • HAVING
  • DENTRO
  • GROUP BY
  • ORDER BY

Funções necessárias

Antes de começar, você deve ter a seguinte função:
  • Função Gerenciador

Casos de uso

Máscara no exemplo de leitura

Com a opção Máscara em leitura, os dados são mascarados com o valor 0, preservando a privacidade dos seus dados durante todo o ciclo de vida da consulta.

Considere a seguinte consulta que você pode usar para determinar o salário de Holly Rhodes:
SELECT Salary FROM employee_info WHERE Name='Holly Rhodes' AND Salary=132000
Se você executar a consulta com a opção Máscara na leitura ativada, a constante Salary=132,000 será avaliada em relação ao valor mascarado do salário 0 (em vez de 132.000) e, portanto, retornará 0 registros:
SALARY
-----------

  0 record(s) selected.

As cláusulas HAVING, GROUP BY, ORDER BY ou JOIN na Salary coluna também operariam em valores mascarados.

Máscara no exemplo de leitura usando predicados de consulta mascarados
Considere o cenário em que você precisa:
  1. Buscar anônimo PATIENT_ID.
  2. Em seguida, faça consultas de acompanhamento com base nesse ID anônimo, sem saber o real (não mascarado) PATIENT_ID.

Ao contrário da semântica Mask at Result, com a semântica Mask at Read, você não precisa conhecer e usar valores desmascarados para emitir predicados de consulta.

Por exemplo, suponha que a mesma expressão de mascaramento se aplique à PATIENT_ID coluna em todas as tabelas para o usuário especificado.
Você pode executar esta consulta, que retorna um conjunto de resultados com máscara PATIENT_ID:
SELECT * FROM PATIENTS WHERE GROUP=<group_id>
Você também pode executar esta consulta sem saber o real PATIENT_ID:
SELECT …​ FROM VISITS, RECORDS JOIN ON PATIENT_ID WHERE PATIENT_ID=<masked_patient_id>

Restrições

  • Se você ativar Máscara na leitura, as regras de filtragem de linhas que fazem Data Virtualization referência a colunas mascaradas serão avaliadas usando os valores não mascarados da tabela de referência.
  • Os predicados de consulta não são empurrados para baixo quando fazem referência a colunas mascaradas, o que pode causar um impacto negativo no desempenho da consulta em comparação com o Mask at Result (comportamento padrão). Em vez Data Virtualization disso, realiza as seguintes ações:
    1. Busque todos os dados dos objetos de origem que participam da consulta.
    2. Mascare todas as linhas com regras de proteção de dados aplicáveis.
    3. Aplique os predicados.
  • Se você referenciar uma coluna mascarada em um predicado de consulta (como em uma cláusula WHERE) e aplicar uma função de conversão de tipo (como CAST, VARCHAR, INTEGER e etc.), então esteja ciente do seguinte:
    1. O Data Virtualization otimizador de consultas não transfere essa conversão de tipo para a fonte de dados. Em vez disso, o otimizador de consultas aplica a conversão de tipos após a função de mascaramento ser aplicada.
    2. Como resultado, os dados podem ser recuperados da fonte em um tipo de dados que não é compatível com o tipo de dados da coluna da tabela virtualizada, causando um SQLCODE=-420, SQLSTATE=22018 erro. Para evitar esse problema, certifique-se de especificar predicados de consulta que correspondam ao tipo de dados da coluna virtualizada. Por exemplo: Se a coluna AGE for virtualizada como um tipo CHAR/VARCHAR, use a seguinte sintaxe:
      • Correto: AGE='75'
      • Incorreto: AGE=75

Procedimento

Aplicando a máscara na configuração de leitura
Para aplicar o mascaramento aos dados antes de avaliar a consulta, execute este procedimento:
CALL DVSYS.SETWKCPOLICYOPTS('MASK_SEMANTICS=READ')
Revertendo para a configuração padrão Máscara no resultado
Para reverter para o comportamento padrão, em que as consultas são avaliadas em dados não mascarados, enquanto o conjunto de resultados é mascarado, execute este procedimento:
CALL DVSYS.SETWKCPOLICYOPTS('MASK_SEMANTICS=RESULT')
Verifique a semântica de mascaramento atualmente configurada
Para verificar se você está configurado para usar Máscara na leitura ou Máscara no resultado, execute esta consulta:
SELECT VALUE FROM DVSYS.INSTANCE_INFO WHERE KEY='WKC_POLICY_OPTS'
Observação: uma string vazia é equivalente a Máscara no resultado (comportamento padrão).