使用自定义分类器实现自定义语义类别¶
CUSTOM_CLASSIFIER 分类 允许数据工程师根据他们对自己数据的了解来扩展其敏感数据分类能力。若要将敏感数据分类为 自定义语义类别,请在架构中创建 CUSTOM_CLASSIFIER 类的实例,并调用实例方法以添加与该实例关联的正则表达式。
有关使用 CUSTOM_CLASSIFIER 实例创建自定义语义类别的端到端示例,请参阅 示例。
命令和方法¶
支持以下方法和 SQL 命令:
访问控制¶
下列各节总结了使用实例所需的各种对象的角色和权限。
角色¶
您可以使用以下角色进行自定义分类:
SNOWFLAKE.CLASSIFICATION_ADMIN:使您能够创建自定义分类器实例的数据库角色。
custom_classifier!PRIVACY_USER:实例角色,使您能够在实例上调用以下方法:ADD_REGEX
LIST
DELETE_CATEGORY
对拥有实例 OWNERSHIP 权限的账户角色可以运行以下命令:
DROP CUSTOM_CLASSIFIER
SHOW CUSTOM_CLASSIFIER
权限¶
要创建和管理实例,您可以选择为角色授予 CREATE SNOWFLAKE.DATA_PRIVACY.CUSTOM_CLASSIFIER 权限,或向角色授予 PRIVACY_USER 实例角色。
您可以将实例角色授予账户角色和数据库角色,以便其他用户能够使用自定义分类器实例:
其中:
name指定自定义分类器实例的名称。
role_name指定账户角色的名称。
database_role_name指定数据库角色的名称。
您必须使用仓库在实例上调用方法。
要为自定义角色 my_classification_role 授予所需的实例角色和权限,以创建和使用 CUSTOM_CLASSIFIER 类的实例,请执行以下语句:
如果您想启用特定角色(例如 data_analyst)以使用特定实例,请执行以下操作:
示例¶
使用自定义分类器对数据进行分类的高级方法如下:
确定要分类的表。
使用 SQL 执行以下操作:
创建一个自定义分类器实例。
将自定义语义类别和正则表达式添加到实例中。
对表进行分类。
完成以下步骤以创建用于对表进行分类的自定义分类器:
以一个
data.tables.patient_diagnosis表为例,其中一列包含诊断代码,例如 `ICD-10 代码<https://en.wikipedia.org/wiki/ICD-10>`_。该表还可能包括用于识别在医疗机构接受治疗的患者的列,例如名字和姓氏、唯一的健康保险标识符和出生日期。数据所有者可以对表进行分类,确保正确标记列,以便对表进行监控。
在此示例中,数据所有者已经为其角色授予了以下权限:
对表的 OWNERSHIP 权限,以便进行分类。
对包含表的架构的 OWNERSHIP 权限。
对包含架构和表的数据库的 USAGE 权限。
允许数据所有者通过将 SNOWFLAKE.CLASSIFICATION_ADMIN 数据库角色授予数据所有者角色来对表进行分类:
作为数据所有者,创建一个架构来存储您的自定义分类器实例:
使用 CREATE CUSTOM_CLASSIFIER 命令在
data.classifiers架构中创建自定义分类器实例:您可以选择性地更新您的 搜索路径,如下所示:
添加
SNOWFLAKE.DATA_PRIVACY,这样在创建类的新实例时,不必指定类的完全限定名称。添加
DATA.CLASSIFIERS,这样在调用实例的方法或使用与实例相关的命令时,不必指定实例的完全限定名称。
使用 SHOW CUSTOM_CLASSIFIER 命令列出您创建的每个实例。例如:
返回:
对实例调用 custom_classifier!ADD_REGEX 方法来指定系统标签和正则表达式,以识别列中的 ICD-10 代码。此示例中的正则表达式匹配所有可能的 ICD-10 代码。匹配列名
ICD.*和注释的正则表达式是可选的:返回:
小技巧
在向自定义分类器实例添加正则表达式之前,请先测试该正则表达式。例如:
在此查询中,仅返回与正则表达式匹配的有效值。该查询不会返回无效值,例如
xyz。有关详细信息,请参阅 字符串函数(正则表达式)。
对实例调用 custom_classifier!LIST 方法以验证添加到实例的正则表达式:
返回:
要删除类别,请对实例调用 custom_classifier!DELETE_CATEGORY 方法。
调用 SYSTEM$CLASSIFY_SCHEMA 存储过程对表进行分类。
如果不再需要该实例,请使用 DROP CUSTOM_CLASSIFIER 命令从系统中移除自定义分类器实例:
审计自定义分类器¶
您可以使用以下查询来审计自定义分类器实例的创建、向实例添加正则表达式以及删除实例的操作。
若要审计自定义分类器实例的创建,请使用以下查询:
要对将正则表达式添加到特定实例的操作进行审计,请使用以下查询并将
DB.SCH.MY_INSTANCE替换为您要审计的实例名称:若要审计删除自定义分类器实例的操作,请使用以下查询: