数据质量的访问控制

以下各节描述了与数据质量和数据指标函数 (DMFs) 相关的操作的访问控制要求。

常见任务

备注

要对架构中的任何对象执行操作,需要对父数据库和架构具有 USAGE 权限。

任务

所需权限/角色

备注

将 DMF 与表或视图关联

账户的 EXECUTE DATA METRIC FUNCTION 权限

DMF 的 USAGE 权限

以下其中一项:

  • 具有表的 OWNERSHIP 权限的角色

  • 具有表的 SELECT 权限 由 EXECUTE AS ROLE 属性指定的角色。

有关 EXECUTE AS ROLE 属性的信息,请参阅 表或视图所需的权限

查看对象和 DMFs 之间的关联

DMF 的 USAGE 权限

与 DMF 关联的表或视图的 SELECT 权限

创建自定义 DMF

架构的 CREATE DATA METRIC FUNCTION 权限

手动调用 DMF

DMF 的 USAGE 权限

调用中指定的表或视图的 SELECT 权限

查看数据质量结果

查看选项

所需权限/角色

备注

DATA_QUALITY_MONITORING_RESULTS_RAW 事件表

DATA_QUALITY_MONITORING_ADMIN 应用程序角色

DATA_QUALITY_MONITORING_RESULTS 视图

以下其中一项:

  • DATA_QUALITY_MONITORING_ADMIN 应用程序角色

  • DATA_QUALITY_MONITORING_VIEWER 应用程序角色

DATA_QUALITY_MONITORING_RESULTS 函数

以下其中一项:

  • DATA_QUALITY_MONITORING_ADMIN 应用程序角色

  • DATA_QUALITY_MONITORING_VIEWER 应用程序角色

  • DATA_QUALITY_MONITORING_LOOKUP 应用程序角色

如果使用 DATA_QUALITY_MONITORING_LOOKUP 应用程序角色,还需要:

  • 与 DMF 关联的表的 OWNERSHIP 或 SELECT 权限

  • DMF 的 USAGE 权限

表或视图所需的权限

将 DMF 与表或视图关联的访问控制要求之一是拥有该表或视图的相应权限。要将 DMF 与对象关联,您的角色必须具有以下权限之一:

  • 表或视图的 OWNERSHIP 权限

  • 表或视图的 SELECT 权限

如果您希望具有对象的 SELECT 权限的角色能够将 DMFs 与该对象关联,则必须在定义关联时设置 EXECUTE AS ROLE 属性。此属性会指定 DMF 运行时使用的角色。例如,假设角色 analyst_role 具有表 t1 的 SELECT 权限。要将 positive_number_count DMF 与表 t1 关联,以便其使用 analyst_role 角色运行,请运行以下命令:

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

此命令可以由具有 analyst_role 角色的用户运行,也可以由具有角色层次结构中较高角色(例如,ACCOUNTADMIN 角色)的用户运行。

如果未指定 EXECUTE AS ROLE 属性,则 DMF 使用表所有者的角色运行。DMF 运行时使用的角色很重要,因为它可能会影响数据治理策略,而这些政策会因当前用户的角色不同而有所差异。

EXECUTE AS ROLE 属性的优势

EXECUTE AS ROLE 属性允许非所有者在表或视图上关联并运行 DMF。这使得数据监管者无需拥有该表即可创建数据质量检查。

限制

您不能使用 MODIFY DATA METRIC FUNCTION 子句来更改 EXECUTE AS ROLE 属性指定的角色。您必须删除关联,然后才能使用新的 EXECUTE AS ROLE 角色重新创建关联。

授予系统 DMFs 的 USAGE 权限

关联和运行系统 DMF 需要系统 DMF 的 USAGE 权限。您可以授予 SNOWFLAKE.DATA_METRIC_USER 数据库角色,以便为用户提供所有系统 DMFs 的 USAGE 权限。

例如,要允许具有 data_governor 角色的用户使用系统 DMFs,请执行以下命令:

GRANT DATABASE ROLE snowflake.data_metric_user TO ROLE data_governor;
Copy

或者,以下访问控制选项也授予系统 DMFs 的 USAGE 权限。请谨慎行事,因为这些选项提供的不仅仅是系统 DMFs 的访问权限。

授予自定义 DMF 的权限

GRANT 和 REVOKE 命令要求您指定所创建的自定义 DMF 的实参。例如:

GRANT USAGE ON FUNCTION
  governance.dmfs.count_positive_numbers(TABLE(NUMBER, NUMBER, NUMBER))
  TO data_engineer;
Copy
语言: 中文