数据发现和分类

适用于: Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics

数据发现和分类内置于 Azure SQL 数据库、Azure SQL 托管实例和 Azure Synapse Analytics 中。 它提供用于发现、分类、标记和报告数据库中的敏感数据的基本功能。

最敏感的数据可能包括业务、财务、医疗保健或个人信息。 它可以充当基础结构,用于:

  • 帮助满足数据隐私标准和法规符合性要求。
  • 各种安全方案,如监视(审核)对敏感数据的访问。
  • 控制对包含高度敏感数据的数据库的访问并增强其安全性。

注意

若要了解本地 SQL Server,请参阅 SQL 数据发现和分类

提示

使用 Microsoft Purview 信息保护策略进行基于标签的访问保护功能现在以预览版形式提供。 有关详细信息,请参阅使用 Microsoft Purview 信息保护策略为敏感数据启用访问控制(公共预览版)

什么是数据发现和分类?

数据发现和分类目前支持以下功能:

  • 发现和建议: 分类引擎扫描数据库,并识别包含潜在敏感数据的列。 使用此功能可以通过 Azure 门户轻松地查看和应用建议的分类。

  • 标记: 可通过使用已添加到 SQL Server 数据库引擎的新元数据属性,将敏感度分类标签永久应用于列。 然后,此元数据可用于基于敏感度的审核方案。

  • 查询结果集敏感度: 出于审核目的实时计算查询结果集的敏感度。

  • 可见性: 可以在 Azure 门户的详细仪表板中查看数据库分类状态。 此外,还可下载用于符合性和审核目的以及其他需求的报表(Excel 格式)。

发现、分类和标记敏感列

本部分介绍用于以下方案的步骤:

  • 发现、分类和标记数据库中包含敏感数据的列。
  • 查看数据库的当前分类状态并导出报表。

分类包含两种元数据属性:

  • 标签:主要分类属性,用于定义列中存储的数据的敏感度级别。
  • 信息类型:提供有关列中存储的数据类型的更详尽信息的属性。

SQL 信息保护策略

数据发现和分类附带一组内置的敏感度标签和信息类型,以及 SQL 逻辑服务器原生的发现逻辑。 你可以继续使用默认策略文件中提供的保护标签,也可以自定义此分类。 可以专门针对你的环境定义分类构造的集合和级别。

定义和自定义分类

可在一个中心位置针对整个 Azure 组织定义和自定义分类。 该位置在 Microsoft Defender for Cloud中,是你的安全策略的一部分。 仅对组织根管理组具有管理权限的人员可以执行此任务。

作为策略管理的一部分,你可定义自定义标签,对其进行分级,并将其与选定的一组信息类型相关联。 还可以添加自己的自定义信息类型,并使用字符串模式对其进行配置。 这些模式已添加到用于识别数据库中的此类型数据的发现逻辑。

定义组织范围的策略后,可以继续使用自定义策略对各个数据库进行分类。

对数据库分类

注意

下面的示例使用的是 Azure SQL 数据库,但你应选择要配置数据发现和分类的适当产品。

  1. 转到 Azure 门户

  2. 转到“Azure SQL 数据库”窗格的“安全”标题下的“数据发现和分类”。 “概述”选项卡中包含数据库当前分类状态的摘要。 该摘要包含所有分类列的详细列表,你还可以对其进行筛选,以便仅显示特定的架构部分、信息类型和标签。 如果尚未对任何列进行分类,请跳到步骤 4

    概述

  3. 要下载 Excel 格式的报表,请选择窗格顶部菜单中的“导出”

  4. 若要开始对数据进行分类,请选择“数据发现和分类”页面上的“分类”选项卡。

    分类引擎扫描数据库,寻找包含潜在敏感数据的列,并提供建议的列分类列表。

  5. 查看并应用分类建议:

    • 若要查看建议的列分类列表,请选择窗格底部的“建议”面板。

    • 若要接受针对特定列的建议,请选中相关行左侧列中的复选框。 若要将所有建议标记为已接受,请选中建议表标题中最左侧的复选框。

    • 若要应用所选建议,请选择“接受所选建议”。

    针对分类的建议

  6. 还可以手动对列进行分类,这是基于建议分类的替代选项:

    1. 选择窗格顶部菜单中的“添加分类”。

    2. 在打开的上下文窗口中,选择要分类的架构、表和列,并选择信息类型和敏感度标签。

    3. 选择上下文窗口底部的“添加分类”。

    手动添加分类

  7. 若要完成分类并永久使用新分类元数据标记数据库列,请在“分类”页中选择“保存” 。

使用 Microsoft Purview 信息保护策略为敏感数据启用访问控制(公共预览版)

Azure SQL 数据库支持在包含使用 Microsoft Purview 信息保护 (MIP) 敏感度标签标记的敏感数据的列上使用 Microsoft Purview 信息保护访问策略强制实施访问控制。

借助 Purview 中的访问策略,组织可以跨数据源保护敏感数据。 借助这些策略,企业安全/合规管理员等角色将能够对其数据库中的敏感数据配置和强制执行访问控制操作,确保未经授权的用户无法访问具有特定敏感度标签的敏感数据。 Purview 访问策略在 Azure SQL 数据库的列级粒度上强制执行,从而在保护敏感数据的同时,不阻止访问数据库表中的非敏感数据列。

要配置和强制实施 Purview 访问策略,用户必须拥有有效的 Microsoft 365 许可证,并且必须在 Purview 数据映射中注册该数据库并进行扫描,以便 Purview 将 MIP 敏感度标签分配给包含敏感数据的数据库列。 分配敏感度标签后,用户可以配置 Purview 访问策略,以对具有特定敏感度标签的数据库列强制实施“拒绝”操作,从而确保只有允许的用户或用户组能够访问这些列中的敏感数据。

在 Purview 中为 Azure SQL 数据库配置和启用访问策略

按照以下步骤为 Azure SQL 数据库配置和使用 Purview 访问策略:

  1. 请确保满足有关 Microsoft 365 和 Purview 的许可证先决条件
  2. 为用户设置角色和权限
  3. 在 Purview 中创建敏感度标签或将其扩展到 Azure SQL 数据库。 此外,请确保将敏感度标签发布到组织中需要的用户。
  4. 注册扫描 Azure SQL 数据库以自动应用敏感度标签。
  5. 在 Purview 中为 Azure SQL 数据库创建和配置访问控制策略。

在 Purview 中配置和发布访问策略后,未经授权的用户如果尝试运行 T-SQL 查询来访问 SQL 数据库中具有限定为该策略的敏感度标签的列,将会失败。 如果该查询不包含敏感列,则查询将会成功。

限制

创建数据库地区副本或复制时,分配给主数据库中列的敏感度标签不会自动流向新数据库/辅助数据库,同时 Purview 访问控制策略不会自动应用于新数据库/辅助数据库。 要在新数据库/辅助数据库上启用访问控制,请分别在 Purview 中注册和扫描该数据库。 然后配置任何访问策略,以包括新数据库/辅助数据库。

审核对敏感数据的访问

分类的一个重要方面是能够监视对敏感数据的访问。 Azure SQL 审核已得到增强,在审核日志中包括了名为 data_sensitivity_information 的新字段。 此字段记录查询返回的数据的敏感度分类(标签)。 下面是一个示例:

审核日志

这些活动可使用敏感信息进行实际审核:

  • ALTER TABLE ... DROP COLUMN
  • BULK INSERT
  • SELECT
  • DELETE
  • INSERT
  • MERGE
  • UPDATE
  • UPDATETEXT
  • WRITETEXT
  • DROP TABLE
  • BACKUP
  • DBCC CloneDatabase
  • SELECT INTO
  • INSERT INTO EXEC
  • TRUNCATE TABLE
  • DBCC SHOW_STATISTICS
  • sys.dm_db_stats_histogram

使用 sys.fn_get_audit_file 从 Azure 存储帐户中存储的审核文件返回信息。

权限

以下内置角色可读取数据库的数据分类:

  • 所有者
  • 读者
  • 参与者
  • SQL 安全管理器
  • 用户访问管理员

以下是读取数据库的数据分类所需的操作:

  • Microsoft.Sql/servers/databases/currentSensitivityLabels/*
  • Microsoft.Sql/servers/databases/recommendedSensitivityLabels/*
  • Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*

以下内置角色可修改数据库的数据分类:

  • 所有者
  • 参与者
  • SQL 安全管理器

以下是修改数据库的数据分类所需的操作:

  • Microsoft.Sql/servers/databases/schemas/tables/columns/sensitivityLabels/*

Azure RBAC 中了解有关基于角色的权限的详细信息。

注意

本部分中的 Azure SQL 内置角色适用于专用 SQL 池(以前是 SQL DW),但不适用于 Azure Synapse 工作区内的专用 SQL 池和其他 SQL 资源。 对于 Azure Synapse 工作区中 SQL 资源,使用数据分类的可用操作,根据需要创建自定义 Azure 角色进行标记。

管理分类

可以使用 T-SQL、REST API 或 PowerShell 来管理分类。

使用 T-SQL

可以使用 T-SQL 添加或删除列分类,以及检索整个数据库的所有分类。

注意

如果使用 T-SQL 管理标签,则不会验证组织信息保护策略(门户建议中显示的标签集)中是否存在添加到列的标签。 因此,是否要验证这一点完全由你决定。

有关使用 T-SQL 进行分类的信息,请参阅以下参考内容:

使用 PowerShell cmdlet

可使用 PowerShell 管理 Azure SQL 数据库和 Azure SQL 托管实例的分类和建议。

适用于 Azure SQL 数据库的 PowerShell cmdlet

适用于 Azure SQL 托管实例的 PowerShell cmdlet

使用 REST API

可以使用 REST API 以编程方式管理分类和建议。 已发布的 REST API 支持以下操作:

使用 SQL 驱动程序检索分类元数据

可使用以下 SQL 驱动程序来检索分类元数据:

常见问题解答 - 高级分类功能

:是 Microsoft Purview 会取代 SQL 数据发现和分类,还是 SQL 数据发现和分类即将停用? :我们会继续支持 SQL 数据发现和分类,但鼓励你采用功能更丰富的 Microsoft Purview 来改善高级分类功能和数据治理。 如果我们决定停用任何服务、功能、API 或 SKU,你会提前收到包含迁移或转换路径的通知。

后续步骤