applies to:SQL Server
数据发现分类添加了可用于发现、分类、标记和报告数据库中的敏感数据的功能。 这可以通过 T-SQL 或使用 SQL Server Management Studio (SSMS)来完成。 发现和分类您最敏感的数据(例如业务、财务、医疗保健等)可以在提升组织信息保护水平方面发挥关键作用。 它可以充当基础结构,用于:
- 帮助满足数据隐私标准。
- 监视包含高度敏感数据的数据库/列access。
注意
数据发现和分类支持 SQL Server 2012 及更高版本,并且可以与 SSMS 17.5 或更高版本一起使用。 有关Azure SQL Database,请参阅
概述
数据发现 &分类为 SQL 数据库、SQL Managed Instance和Azure Synapse形成了新的信息保护范例,旨在保护数据,而不仅仅是数据库。 目前,它支持以下功能:
- 发现和建议 - 分类引擎扫描数据库,并标识包含潜在敏感数据的列。 利用它可以轻松查看和应用相应的分类建议,也可以手动对列进行分类。
- 标记 - 可以在列上永久地标记敏感度分类标签。
- 可见性 - 可以在详细报表中查看数据库分类状态,如在符合性和审核事项中对其有需求,则可以直接打印或导出该报表。
对敏感列进行发现、分类和标记
以下部分介绍如何在数据库中发现包含敏感数据的列并对其进行分类和标记、如何查看数据库的当前分类状态,以及如何导出报表。
分类包含两种元数据属性:
- 标签 - 这是主要的分类属性,用于定义存储在列中的数据的敏感度级别。
- 信息类型 - 为列中存储的数据类型提供更细粒度。
对 SQL Server 数据库进行分类:
在 SQL Server Management Studio (SSMS)中,连接到SQL Server。
在 SSMS Object Explorer中,选择您要分类的数据库,然后选择任务>数据发现和分类>分类数据...。
分类引擎会扫描数据库中包含潜在敏感数据的列(仅基于列名称),并提供推荐列分类列表:
要查看建议的列分类列表,请选择窗口顶部的建议通知框,或底部建议面板:
查看建议列表:
要接受针对某特定列的建议,请选中相关行左侧列中的复选框。 还可以选中建议表标头中的复选框,将所有建议标记为“接受”。
也可以使用下拉框更改建议的信息类型和敏感度标签。
若要应用所选建议,请选择“保存所选建议”按钮。
注意
使用Microsoft Purview Information Protection策略模式时禁用执行自动数据发现并提供敏感列建议的建议引擎。
若要显示分类列,请从下拉列表中选择相应的架构和表,然后选择“加载列”。
您还可以手动对列进行分类,作为对基于建议分类的替代方案或补充。
选择窗口顶部菜单中的“添加分类”。
在打开的上下文窗口中,选择要分类列名称、信息类型和敏感度标签。 根据主页中的条目选择架构和表。
如果要在一次尝试中为特定表的所有未分类列添加分类,请在“添加分类”页的“列”下拉列表中选择“所有未分类列”。
若要完成分类并永久使用新分类元数据标记数据库列,请在窗口顶部菜单中选择“保存”按钮。
要生成数据库分类状态的完整摘要报表,请在窗口顶部菜单中选择“查看报表”。 (你也可以使用 SSMS 生成报告。选择要生成报告的数据库,然后选择“任务”>“数据发现和分类”>“生成报告...”)
使用 Microsoft Purview Information Protection 策略对数据库进行分类
注意
Microsoft Information Protection(缩写为 MIP)已被重新命名为Microsoft Purview Information Protection。 MIP 和Microsoft Purview Information Protection术语通常在此文档中互换使用,但两者都引用了相同的概念。
Microsoft Purview Information Protection标签为用户提供了一种简单统一的方式来对SQL Server中的敏感数据进行分类。 MIP 敏感度标签在 Microsoft 365 合规中心 创建和管理 [重新命名为 Microsoft Purview 合规门户]。 若要了解如何在Microsoft Purview合规性门户中创建和发布 MIP 敏感标签,请参阅文章Microsoft Information Protection敏感度标签。
现在,可以使用 SSMS 通过 Power BI、Office 和其他Microsoft产品中使用的Microsoft Purview Information Protection标签对源(SQL Server)中的数据进行分类。 这些敏感度标签在数据库中的列级别应用,与 SQL Information Protection 策略相同。
Power BI 数据集或报表连接到受支持数据源中具有敏感度标签的数据时可以自动继承这些标签,这样数据在进入 Power BI 并导出到下游应用程序后仍处于分类状态。 SSMS 中的 MIP 策略可用性可实现端到端企业范围的分类解决方案。
配置Microsoft Purview Information Protection策略的步骤
在 SQL Server Management Studio (SSMS)中,连接到SQL Server。
在 SSMS 对象资源管理器中,选择要分类的数据库,然后选择 Tasks>Data Discovery and Classification>设置 Microsoft 信息保护策略
将会显示用于设置Microsoft 365的Microsoft信息保护策略的身份验证窗口。 选择 Sign In 并输入或选择有效的用户凭据以向Microsoft 365租户进行身份验证。
如果身份验证成功,则会看到一个弹出窗口,其状态为“成功”。
可选 - 如果要登录到任何Microsoft主权云以向Microsoft 365进行身份验证,请转到 SSMS >Tools>Options>Azure Services>Azure Cloud, 并将 Name 更改为相关的Microsoft主权云。
在 SSMS Object Explorer 窗口中, 右键单击要对数据库进行分类并选择 Tasks>Data Discovery and Classification>Classify Data。 现在,可以使用Microsoft 365租户中定义的 MIP 敏感度标签添加新分类,并使用这些标签对SQL Server中的列进行分类。
选择 Microsoft Information Protection 策略敏感度标签在 SSMS 中
在Microsoft Information Protection策略模式下禁用自动数据发现和建议。 它目前仅在 SQL Information Protection 策略模式下可用。
若要将信息保护策略重置为默认值或 SQL 信息保护,请转到 SSMS Object Explorer,右键单击数据库,并选择 Tasks>Data Discovery and Classification>重置信息保护策略为默认值。 这将应用默认或 SQL Information Protection 策略,可以使用 SQL 敏感度标签而不是 MIP 标签对数据进行分类。
若要从自定义 JSON 文件启用Information Protection策略, 转到 SSMS Object Explorer,右键单击数据库并选择 Tasks>Data Discovery and Classification>Set Information Protection 策略文件。
注意
警告图标表示该列之前使用的分类方式和当前所选的信息保护策略模式不同。 例如,如果当前处于Microsoft信息保护模式,并且其中一列以前使用SQL信息保护策略或来自自定义策略文件的Information Protection策略进行分类,则会看到针对该列的警告图标。 你可以决定是要将列的分类更改为当前策略模式下可用的任何敏感度标签,还是保留它。
使用 SSMS 管理信息保护策略
可以使用最新版本的SQL Server Management Studio管理信息保护策略:
在 SQL Server Management Studio (SSMS)中,连接到SQL Server。
在 SSMS Object Explorer中,选择其中一个数据库,然后选择 Tasks>Data Discovery and Classification。
通过以下菜单选项可以管理信息保护策略:
设置Microsoft Information Protection策略:将Information Protection策略设置为Microsoft Purview Information Protection策略。
设置信息保护策略文件:使用所选 JSON 文件中定义的 SQL 信息保护策略。 (请参阅默认信息保护策略文件)
Export Information Protection Policy:将Information Protection策略导出到 JSON 文件。
Reset Information Protection Policy:将Information Protection策略重置为默认 SQL Information Protection 策略。
重要
信息保护策略文件未存储在SQL Server中。 SSMS 使用默认信息保护策略。 如果自定义Information Protection策略失败,SSMS 无法使用默认策略。 数据分类失败。 若要解决此问题,请单击 Reset Information Protection Policy 以使用默认策略并重新启用数据分类。
访问分类元数据
SQL Server 2019 引入了 sys.sensitivity_classifications 系统目录视图。 此视图返回信息类型和敏感度标签。
在 SQL Server 2019 实例上,查询 sys.sensitivity_classifications,以查看具有相应分类的所有分类列。 例如:
SELECT
schema_name(O.schema_id) AS schema_name,
O.NAME AS table_name,
C.NAME AS column_name,
information_type,
label,
rank,
rank_desc
FROM sys.sensitivity_classifications sc
JOIN sys.objects O
ON sc.major_id = O.object_id
JOIN sys.columns C
ON sc.major_id = C.object_id AND sc.minor_id = C.column_id
在 2019 SQL Server 之前,信息类型和敏感度标签的分类元数据位于以下扩展属性中:
sys_information_type_namesys_sensitivity_label_name
对于 SQL Server 2017 及更早版本的实例,以下示例返回具有相应分类的所有分类列:
SELECT
schema_name(O.schema_id) AS schema_name,
O.NAME AS table_name,
C.NAME AS column_name,
information_type,
sensitivity_label
FROM
(
SELECT
IT.major_id,
IT.minor_id,
IT.information_type,
L.sensitivity_label
FROM
(
SELECT
major_id,
minor_id,
value AS information_type
FROM sys.extended_properties
WHERE NAME = 'sys_information_type_name'
) IT
FULL OUTER JOIN
(
SELECT
major_id,
minor_id,
value AS sensitivity_label
FROM sys.extended_properties
WHERE NAME = 'sys_sensitivity_label_name'
) L
ON IT.major_id = L.major_id AND IT.minor_id = L.minor_id
) EP
JOIN sys.objects O
ON EP.major_id = O.object_id
JOIN sys.columns C
ON EP.major_id = C.object_id AND EP.minor_id = C.column_id
权限
在 SQL Server 2019 实例上,查看分类需要VIEW ANY SENSITIVITY CLASSIFICATION 权限。 有关详细信息,请参阅 Metadata Visibility Configuration。
在 SQL Server 2019 之前,可以使用扩展属性目录视图sys.extended_properties访问元数据。
管理分类需要 ALTER ANY SENSITIVITY CLASSIFICATION 权限。 “ALTER ANY SENSITIVITY CLASSIFICATION”由数据库权限“ALTER”或服务器权限“CONTROL SERVER”表示。
管理分类
可以使用 T-SQL 添加或删除列分类,还可以检索整个数据库的所有分类。
后续步骤
有关Azure SQL Database,请参阅
请考虑通过应用列级别安全性机制来保护敏感列:
- 用于模糊化使用中的敏感列的动态数据掩码。
- Always Encrypted用于加密静态敏感列。