你当前正在访问 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 数据发现和分类

什么是数据发现和分类?

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

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

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

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

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

发现、分类和标记敏感列

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

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

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

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

信息保护策略

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

Screenshot of Information Protection policy types.

SQL 信息保护策略

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

定义和自定义分类

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

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

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

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

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

注意

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

  1. 转到 Azure 门户

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

    Overview

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

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

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

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

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

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

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

    Recommendations for classification

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

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

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

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

    Manually add classification

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

Microsoft 信息保护策略

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

切换为 MIP 策略的先决条件

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

  1. 转到 Azure 门户

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

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

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

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

    Screenshot of selecting Microsoft Information Protection policy for Azure SQL Database.

  6. 如果转到“分类”选项卡,或选择“添加分类”,“敏感度标签”下拉列表现在将显示 M365 敏感度标签。

    Screenshot of Sensitivity label dropdown.

    Screenshot of Sensitivity label in the Classification tab.

  • 处于 MIP 策略模式时,信息类型为 [n/a],自动数据发现 & 建议保持禁用状态。

  • 如果使用与当前活动策略不同的信息保护策略对列进行分类,则可能会针对已分类的列显示警告图标。 例如,如果先前使用 SQL 信息保护策略通过标签对列进行了分类,而现在你处于 Microsoft 信息保护策略模式。 你将看到针对该特定列的警告图标。 此警告图标不表示任何问题,仅传达信息。

    Screenshot of warnings for classified columns because of different Information Protection policies.

审核对敏感数据的访问

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

Audit log

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

  • ALTER TABLE ... DROP COLUMN
  • BULK INSERT
  • 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 cmdlet

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

适用于 Azure SQL 数据库的 PowerShell cmdlet

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

使用 REST API

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

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

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

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

问:是 Azure Purview 会取代 SQL 数据发现和分类,还是 SQL 数据发现和分类即将停用? 答:我们会继续支持 SQL 数据发现和分类,但鼓励你采用功能更丰富的 Azure Purview 来改善高级分类功能和数据治理。 如果我们决定停用任何服务、功能、API 或 SKU,将会向你提前发送包含迁移或转换路径的通知。 在此处详细了解 Microsoft 生命周期策略。

后续步骤