Controle de acesso para qualidade de dados

As seções a seguir descrevem os requisitos de controle de acesso para ações relacionadas à qualidade de dados e funções de métrica de dados (DMFs).

Tarefas comuns

Nota

O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.

Tarefa

Privilégios/funções necessários

Notas

Associação de uma DMF a uma tabela ou exibição

EXECUTE DATAMETRICFUNCTION na conta

Privilégio USAGE na DMF

Um dos seguintes:

  • Função com o privilégio OWNERSHIP na tabela

  • Função que tem o privilégio SELECT na tabela e é especificada pela propriedade EXECUTE AS ROLE.

Para obter mais informações sobre a propriedade EXECUTE AS ROLE, consulte Privilégio obrigatório na tabela ou exibição.

Visualização de associações entre objetos e DMFs

Privilégio USAGE na DMF

Privilégio SELECT para a tabela ou exibição associada à DMF

Crie uma DMF

Privilégio CREATE DATA METRICFUNCTION no esquema

Chame uma DMF manualmente

Privilégio USAGE na DMF

Privilégio SELECT na tabela ou exibição especificada na chamada

Visualização de resultados de qualidade de dados

Visualização de opção

Privilégios/funções necessários

Notas

Tabela de eventos DATA_QUALITY_MONITORING_RESULTS_RAW

Função de aplicativo DATA_QUALITY_MONITORING_ADMIN

Exibição DATA_QUALITY_MONITORING_RESULTS

Um dos seguintes:

  • Função de aplicativo DATA_QUALITY_MONITORING_ADMIN

  • Função de aplicativo DATA_QUALITY_MONITORING_VIEWER

Função DATA_QUALITY_MONITORING_RESULTS

Um dos seguintes:

  • Função de aplicativo DATA_QUALITY_MONITORING_ADMIN

  • Função de aplicativo DATA_QUALITY_MONITORING_VIEWER

  • Função de aplicativo DATA_QUALITY_MONITORING_LOOKUP

Se estiver usando a função de aplicativo DATA_QUALITY_MONITORING_LOOKUP, você também precisa de:

  • Privilégio OWNERSHIP ou SELECT para tabela associada à DMF

  • Privilégio USAGE na DMF

Privilégio obrigatório na tabela ou exibição

Um dos requisitos de controle de acesso para associar uma DMF a uma tabela ou exibição é ter o privilégio apropriado nessa tabela ou exibição. Para associar uma DMF a um objeto, sua função deve ter um dos seguintes privilégios:

  • Privilégio OWNERSHIP na tabela ou visualização

  • Privilégio SELECT na tabela ou visualização

Se você quiser funções com o privilégio SELECT em um objeto para poder associar DMFs ao objeto, é necessário definir a propriedade EXECUTE AS ROLE ao definir a associação. Esta propriedade especifica a função com que a DMF é executada. Por exemplo, suponha que a função analyst_role tenha o privilégio SELECT na tabela t1. Para associar a DMF positive_number_count à tabela t1, de modo que ela seja executada com a função analyst_role, execute o seguinte comando:

ALTER TABLE t1
  ADD DATA METRIC FUNCTION governance.dfms.positive_number_count on (c1, c2, c3)
    EXECUTE AS ROLE analyst_role;
Copy

Esse comando pode ser executado por um usuário com a função analyst_role ou por um usuário com uma função superior na hierarquia de funções (por exemplo, a função ACCOUNTADMIN).

Se a propriedade EXECUTE AS ROLE não for especificada, a DMF será executada com a função de proprietário da tabela. A função com que a DMF é executada é importante porque pode afetar políticas de governança de dados que se comportam de maneira diferente dependendo da função do usuário atual.

Benefícios da propriedade EXECUTE AS ROLE

A propriedade EXECUTE AS ROLE permite que um não proprietário associe e execute uma DMF em uma tabela ou exibição. Isso permite que um controlador de dados crie verificações de qualidade de dados sem precisar ser proprietário da tabela.

Limitações

Não é possível usar a cláusula MODIFY DATA METRIC FUNCTION para mudar a função especificada pela propriedade EXECUTE AS ROLE. Você deve descartar a associação e depois recriá-la com uma nova função EXECUTE AS ROLE.

Concessão do privilégio USAGE em DMFs do sistema

A associação e a execução de uma DMF do sistema requer o privilégio USAGE na DMF do sistema. Você pode conceder a função de banco de dados SNOWFLAKE.DATA_METRIC_USER para oferecer aos usuários o privilégio USAGE em todas as DMFs do sistema.

Por exemplo, para permitir que usuários com a função data_governor trabalhem com as DMFs do sistema, execute o seguinte comando:

GRANT DATABASE ROLE snowflake.data_metric_user TO ROLE data_governor;
Copy

Como alternativa, as opções de controle de acesso a seguir também concedem o privilégio USAGE nas DMFs do sistema. Tenha cuidado porque essas opções fornecem acesso a mais do que apenas às DMFs do sistema.

Concessão de privilégios em uma DMF personalizada

Os comandos GRANT e REVOKE exigem que você especifique os argumentos da DMF personalizada criada por você. Por exemplo:

GRANT USAGE ON FUNCTION
  governance.dmfs.count_positive_numbers(TABLE(NUMBER, NUMBER, NUMBER))
  TO data_engineer;
Copy