Azure SQL数据库"数据发现与分类"预览版:存储位置与直接查询咨询
Azure SQL数据库数据发现与分类:存储位置与查询方法
嘿,刚好对这个问题有研究,给你详细梳理下:
存储位置:不是扩展属性,是系统目录视图
和本地SQL Server用扩展属性存储分类数据不同,Azure SQL的"数据发现与分类"功能把所有分类信息存在**系统目录视图sys.sensitivity_classifications**里。这是Azure专门为这个功能设计的存储方式,目的是更好地集成Azure的安全生态(比如和动态数据脱敏、Azure Monitor等联动)。
如何直接查询分类数据?
完全可以通过T-SQL直接查询这个视图,下面的脚本就能列出所有已分类的列及其详细信息:
SELECT SCHEMA_NAME(o.schema_id) AS 架构名, o.name AS 表名, c.name AS 列名, s.classification_type AS 分类类型, s.classification_subtype AS 分类子类型, s.label_name AS 标签名称, s.information_type_name AS 信息类型名称 FROM sys.sensitivity_classifications s JOIN sys.objects o ON s.major_id = o.object_id JOIN sys.columns c ON s.major_id = c.object_id AND s.minor_id = c.column_id;
如果你想手动给列添加分类,也可以用T-SQL命令,比如:
ALTER TABLE [dbo].[Customers] ALTER COLUMN [Email] ADD SENSITIVITY CLASSIFICATION WITH (LABEL = '机密', INFORMATION_TYPE = '联系信息');
为什么看不到扩展属性?
这就是Azure和本地SQL Server的实现差异了——本地是把分类数据存在sys.extended_properties里,但Azure采用了独立的系统视图来管理,所以你在Azure门户设置的分类信息不会出现在扩展属性中,只能通过sys.sensitivity_classifications查询。
内容的提问来源于stack exchange,提问作者Data Derek
相关产品推荐
相关产品推荐

