手动分类敏感数据

本主题介绍如何对架构中的表进行分类、查看分类结果,以及通过 SQL 或 Snowsight 对表中的列设置 系统标签

概述

数据管理员可以对架构中的表进行分类,以满足数据隐私法规的要求。这些表包括以下情形:

  • 架构中的新表。

  • 在同一架构内的表中的新列或更改列。

  • 以前已分类但可能需要再次分类的表。

通过评估这些情况,数据管理员可以对敏感信息和个人信息进行分类。在列上设置系统标签可以方便数据监控。随后,数据工程师可以使用 Snowsight 中的掩码策略或行访问策略或者使用 SQL 保护个人敏感数据。

开始数据分类

在对架构中的单个表或多个表进行分类之前,请执行以下操作:

  • 选择工作流程:

  • 决定要使用的仓库。例如,使用与您所属的成本中心或业务单位相匹配的仓库,以实现准确的报告和预算。

  • 在工作流程中考虑延迟因素。Snowsight 每 12 小时更新一次 Snowsight 的 Databases 区域,届时可对更新后的表进行分类。

  • 确认您当前角色的访问控制配置:

    • 使用 SHOW GRANTS TO ROLE 语句查看具有该角色的用户可以访问的对象的授权。使用的角色必须至少拥有以下授权:

      • 在分类过程中要使用的仓库的 USAGE 权限。

      • 表的 SELECT 权限,用于开始分类过程。

      • SNOWFLAKE.CORE_VIEWER 数据库角色,用于在列上设置系统标签。

      • SNOWFLAKE.GOVERNANCE_VIEWER 数据库角色,用于查询 Account Usage DATA_CLASSIFICATION_LATEST 视图。

    • 有关其他授权组合,请参阅 Data Classification 权限参考

    • 访问控制模式允许不同的角色参与工作流程。例如,数据管理员可以暂存架构中表的分类,数据工程师可以在 Snowsight 中对结果进行评估。选择适合您的访问控制模式和工作流程。

对敏感数据进行手动分类的成本

手动分类过程需要计算资源,这些资源由执行分类时正在使用和运行的 虚拟仓库 提供。

对表/视图中的数据进行分类所需的时间量(以及仓库使用的 Credit 数)是要分类的列的函数。

特别是,如果表或视图具有大量支持分类的列,则处理时间可能会受到影响。然而,一般来说,处理速度与仓库大小呈线性变化关系。换句话说,仓库每次变大(从超小变为小)通常会使处理时间缩短一半。

使用以下一般准则选择 仓库大小

  • 无需担心处理时间:超小型仓库。

  • 表中最多有 100 列:小型仓库。

  • 表中有 101 到 300 列:中型仓库。

  • 表中有超过 300 列:大型仓库。

有关信息,请参阅 仓库注意事项

使用 SQL 对单个表进行分类

这种方法使用 SQL 对表进行分类,并在表中的列上设置系统标签。查看 开始数据分类 部分,确保使用的角色拥有必要的访问控制授权,以便对架构中的表进行分类。

此过程假设使用的角色具有 适当的授权。完成以下步骤,使用 SQL 对架构中的表进行分类,并在表列上设置系统标签:

  1. 确定要分类的表。

  2. 调用 SYSTEM$CLASSIFY 存储过程,对表进行分类并对表列设置标签:

    CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'auto_tag': true});
    
    Copy
  3. 调用 TAG_REFERENCES_ALL_COLUMNS Information Schema 表函数,确认表中列上的标签分配:

    SELECT *
    FROM TABLE(
      hr.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
        'hr.tables.empl_info',
        'table'
    ));
    
    Copy
  4. 之后,可以查询 Account Usage DATA_CLASSIFICATION_LATEST 视图,查看表的最新分类结果。

对每个要分类的表重复上述步骤。

使用 SQL 对架构中的多个表进行异步分类

这种方法使用 SQL 对架构中的所有表进行异步分类,并在每个表中的列上设置系统标签。此过程假设:

  • 此过程假设使用的角色具有 适当的授权

  • 选择一个包含少于 1000 个表对象的架构。您可以使用 SHOW TABLES IN SCHEMA 命令确定架构中表对象的数量。

完成以下步骤,使用 SQL 对架构中的所有表进行分类,并在每个表中的每一列上设置系统标签:

  1. 确定包含要分类的表的架构。

  2. 调用 SYSTEM$CLASSIFY_SCHEMA 存储过程,计划对架构中的表进行分类:

    CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables', {'auto_tag': true});
    
    Copy

    注意不要同时分类太多架构。有关详细信息,请参阅 使用说明

  3. 如需查看结果,请对架构中的每个表调用 SYSTEM$GET_CLASSIFICATION_RESULT 函数:

    SELECT SYSTEM$GET_CLASSIFICATION_RESULT('hr.tables.empl_info');
    
    Copy
  4. 调用 TAG_REFERENCES_ALL_COLUMNS Information Schema 表函数,确认表中列上的标签分配:

    SELECT *
    FROM TABLE(
      hr.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
        'hr.tables.empl_info',
        'table'
    ));
    
    Copy
  5. 之后,可以查询 Account Usage DATA_CLASSIFICATION_LATEST 视图,查看表的最新分类结果。

对包含要分类的表的每个架构重复上述步骤。

小技巧

如果要取消架构中表的分类,请调用 SYSTEM$CANCEL_CLASSIFY_SCHEMA 存储过程。

使用 Snowsight 对架构中的多个表进行分类

这种方法使用 Snowsight 暂存架构中表的分类,并为架构中每个表的各列自动设置标签。此过程假设使用的角色具有 适当的授权

要对架构中的所有表进行分类,并在架构中所含的每个表中的每一列上设置系统标签,请在 Snowsight 中完成以下步骤:

  1. 对架构中的表触发分类和设置标签操作:

    1. 在 Snowsight 中,使用对象资源管理器导航到所选架构。

    2. 选择 More 菜单 (...),然后选择 Classify and Tag Sensitive Data

    3. 如尚未使用仓库,请选择一个仓库。

    4. 选择要进行分类的表格。默认不选择表格。

    5. 评估 Advanced Options 并按需进行选择:

      • 通过 Auto-tagging data 选项,您可在对数据进行分类后自动为列分配标签。该选项默认启用,可按需将其禁用。

      • 通过 Include custom classifiers 选项,您可以使用自己能访问的 自定义分类器 对数据进行分类。

        如需确定可访问的自定义分类器,请选择 View custom classifiers 并在工作表中运行该命令。

  2. 选择 Classify and Tag Sensitive Data

    您可以选择此选项来重新分类之前已分类的表。

    使用 Snowsight 可对 1000 个表进行分类。

    或者,也可以打开 Worksheet 并调用 SYSTEM$CLASSIFY_SCHEMA,如 使用 SQL 对架构中的多个表进行异步分类 所示。如果选择此选项,请在调用此存储过程后在对象资源管理器中导航回架构。请注意在相对较短的时间段内调用该存储过程的次数。有关详细信息,请参阅 使用说明

  3. 允许分类过程完成。完成后,CLASSIFICATION 一栏会出现绿色复选标记。

  4. 选择 View Results

  5. 按需更改标签值。为此,请使用获授 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES 的角色。

  6. 按提示审查和批准架构中的表。按需更新标签值。

  7. 选择 Complete classification

  8. Tables 选项卡显示 Classification results reviewed and applied。您可以通过以下操作确认标签分配:

    1. 选择表。

    2. 导航到 Columns 选项卡。

    3. 查看 TAGS 列。

    或者,您也可以采取以下方法:

    1. 使用工作表调用 TAG_REFERENCES_ALL_COLUMNS Information Schema 表函数,查看特定表中列的标签分配。有关其他选项,请参阅 跟踪系统标签

    2. 使用对象资源管理器导航到视图或在工作表中查询视图,查看 Account Usage DATA_CLASSIFICATION_LATEST 视图记录。

  9. 对包含要分类的表的其他架构重复上述步骤。

语言: 中文