你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

数据发现和分类

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

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

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

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

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

注意

使用 Microsoft Purview 信息保护 策略(预览版)的基于标签的访问保护已停用,不再可用。 欲了解更多信息,请参见Microsoft Purview 信息保护 for Azure SQL 数据库的信息保护策略

什么是数据发现和分类?

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

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

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

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

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

发现、分类和标记敏感列

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

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

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

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

信息保护策略

Azure SQL 在数据分类中同时提供 SQL 信息保护策略和 Microsoft 信息保护策略,你可以根据自己的需求在这两种策略中进行选择。

信息保护策略类型的屏幕截图。

SQL 信息保护策略

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

定义和自定义分类

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

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

有关详细信息,请参阅在 Microsoft Defender for Cloud 中自定义 SQL 信息保护策略(预览版)

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

在 SQL 信息保护策略模式下对数据库进行分类

注意

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

  1. 转到 Azure 门户

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

    概览标签的截图,显示数据发现与分类。

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

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

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

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

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

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

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

    分类建议截图。

    注意

    使用“Microsoft Purview 信息保护”策略模式时,执行自动数据发现并提供敏感列建议的建议引擎会被禁用。

  6. 您还可以手动对列进行分类,作为基于建议的分类的替代选项或补充:

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

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

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

    截图展示了如何手动添加分类。

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

“Microsoft Purview 信息保护”策略

注意

“Microsoft 信息保护”(缩写为 MIP)已更名为“Microsoft Purview 信息保护”。 “MIP”和“Microsoft Purview 信息保护”常在本文档中互换使用,二者所指概念相同。

“Microsoft Purview 信息保护”标签为用户提供了一种简单且统一的方法,使其可在不同的 Microsoft 应用程序中对敏感数据进行统一分类。 在 Microsoft Purview 合规门户中创建和管理 MIP 敏感度标签。 要了解如何在 Microsoft Purview 合规门户中创建和发布 MIP 敏感度标签,请参阅创建和发布敏感度标签一文。

转换到“Microsoft Purview 信息保护”策略的先决条件

  • 在 Azure SQL 数据库中设置/更改信息保护策略,会为租户下的所有数据库设置相应的信息保护策略。 用户或角色必须具有租户范围的“安全管理员”权限,才能将信息保护策略从 SQL 信息保护 策略更改为 MIP 策略,反之亦然。

  • 若用户或角色具有租户范围的“安全管理员”权限,可在租户根管理组级别应用策略。 有关详细信息,请参阅为自己授予租户范围的权限

    Azure 门户请求租户级别安全管理员权限的截图。

  • 租户具有有效的 Microsoft 365 订阅,并且你为当前用户发布了标签。 有关详细信息,请参阅创建和配置敏感度标签及其策略

在“Microsoft Purview 信息保护”策略模式下对数据库进行分类

  1. 转到 Azure 门户

  2. 导航到 Azure SQL 数据库中的数据库

  3. 转到“数据库”窗格的“安全”标题下的“数据发现和分类”。

  4. 若要选择“Microsoft 信息保护策略”,请选择“概述”选项卡,然后选择“配置”。

  5. 在“信息保护策略”选项中选择“Microsoft 信息保护策略”,然后选择“保存”。

    选择 Azure SQL 数据库的 Microsoft 信息保护策略的屏幕截图。

  6. 如果你进入分类标签,或选择添加分类,你会看到 Microsoft 365 敏感标签出现在敏感性标签下拉列表中。

    敏感度标签下拉菜单的截图。

    “分类”选项卡中“敏感度”标签的屏幕截图。

  • 在 MIP 策略模式下,信息类型为 [n/a],并且自动数据发现与建议保持禁用状态。

  • 如果某个已分类的列是使用与当前处于活动状态的策略不同的信息保护策略进行分类的,则该列旁边可能会显示警告图标。 例如,如果该列之前用带有 SQL 信息保护 策略的标签分类,现在你进入了 Microsoft 信息保护 策略模式,你会看到针对该特定列的警告图标。 警告图标是信息性的,并不表示问题。

    由于不同信息保护策略导致分类列出现警告的屏幕截图。

适用于 Azure SQL 数据库 的 Microsoft Purview 信息保护 策略

重要

适用于 Azure SQL 数据库 的 Microsoft Purview 信息保护 策略已停用。 您不再可以通过 Microsoft Purview 信息保护(MIP)访问策略对敏感列配置或强制访问控制,且通过该功能配置的现有访问策略也不再被强制执行。

此前,Azure SQL 数据库 支持通过使用 Purview 访问策略对标有 Microsoft Purview 信息保护 敏感性标签的列执行访问控制。

Microsoft Purview 通过敏感标签控制访问的保护策略仍然可在 Microsoft Fabric 中使用。 更多信息请参见 Microsoft Fabric 中的保护策略

审核对敏感数据的访问

分类的一个重要方面是能够监视对敏感数据的访问。 Azure SQL 审计在审计日志中包含一个名为 data_sensitivity_information 的字段。 该字段记录查询返回数据的敏感性分类(标签)。 下面是一个示例:

示例审计日志查询的结果集截图。

这些 T-SQL 活动可通过敏感性信息进行审计:

  • 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 角色以进行标签。 有关 Microsoft.Synapse/workspaces/sqlPools 提供程序操作的详细信息,请参阅 Microsoft.Synapse

管理分类

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

使用 T-SQL

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

注意

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

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

使用 PowerShell 命令行程序

可使用 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,你会提前收到包含迁移或转换路径的通知。 有关详细信息,请参阅 Microsoft生命周期策略