SQL数据发现与分类

时间:2022-05-14
本文章向大家介绍SQL数据发现与分类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

新版本的SQL Server Management Studio(v17.5)增加了一项新功能:SQL数据发现和分类。你可能还记得,在SSMS 17.4中,添加了漏洞评估功能。所以,这是前两个版本中的两个新功能。这是从SQL Server安装介质中解耦SSMS的美妙之处。我们获得更多功能,速度更快。但谈论这些就有些离题了。

任何使用Azure动态数据屏蔽的人都会很熟悉SQL数据发现和分类功能。这两个功能都使用T-SQL来解析列的名称以识别和分类数据。(数据迁移助手中也提供此功能,你可以在其中获得一个受益于动态数据屏蔽或始终加密的列的列表。)

SQL数据发现和分类功能将帮助用户发现,分类和标注包含敏感数据的列。该功能还允许为审计目的生成报告。这个特性可以通过GDPR,用不到三个月的时间,帮助您的公司保持合规性。

运行SQL数据发现和分类

使用数据发现和分类工具很容易。只需选择一个数据库并右键单击。转到任务 > 分类数据...。以下是一个使用GalacticWorks数据库测试的例子:

我的GalacticWorksTest数据库只有一个表,即AdventureWorks2012.Sales.CreditCard表的副本。你可以在这里看到扫描的结果:

我用绿框圈住了“ 信息类型”和“ 敏感性标签”列标题。我想确定你明白这些列中有下拉窗口,允许你根据需要改变它们。

信息类型的选项如下:银行,联系信息,证件,信用卡,出生日期,财务,健康,姓名,国家ID,网络,SSN,其他和[n / a]。这是下拉菜单的样子:

敏感性标签的选项如下:公共,一般,机密,机密 - GDPR,高度机密,高度机密 - GDPR和[n / a]。这是下拉菜单的样子:

GDPR是欧盟发布的《一般数据保护条例》

SQL数据发现和非英文名称分类

由于该功能需要解析列名,我们将创建一个新表并使用非英文名称。我们也会为你们的列名使用缩写,这需要你有足够的经验可以记住通用的缩写。

好的,我们来创建一个新表格:

CREATE TABLE [Sales].[Tarjeta](
[TarjetaCreditoID] [int] IDENTITY(1,1) NOT NULL,
[TarjetaTipo] [nvarchar](50) NOT NULL,
[TarjetaNumero] [nvarchar](25) NOT NULL,
[TARNUM] [nvarchar](25) NOT NULL,
[ExpMonth] [tinyint] NOT NULL,
[ExpYear] [smallint] NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
CONSTRAINT [PK_Tarjeta_TarjetaCreditoID] PRIMARY KEY CLUSTERED 
([TarjetaCreditoID] ASC
)ON [PRIMARY]) 
ON [PRIMARY]
GO

我创建了一张与Sales.CreditCard表几乎相同的表,除了我使用西班牙语名称作为credit(credito),card tarjeta),number(numero)和type(tipo)之外。我还添加了一个列TARNUMTarjetaNumero的缩写。这是具有实际信用卡号码的列。

我们将再次重新运行分类(确保关闭第一个结果;否则,表格不会刷新)。另请注意,我不需要此表中的数据来评估这些列。我没有加载任何行到Sales.Tarjeta中,这里是结果(我已经向下滚动以显示三个新的行):

数据发现和分类工具确定了三列:ExpMonthExpYearCreditoID。然而,它不包含了TarjetaNumeroTARNUM,这些列有实际的信用卡号码。该TarjetaCreditID列没有卡号,只是一个IDENTITY(1,1)用于主键值。

最后一个有趣的事情是。当列被分类时,细节将被存储为扩展属性。这是一个例子:

您可以看到“数据发现和分类”功能未标记为此测试创建的列。由于该功能专注于关键字,因此在预计之中会跳过这些列。有两个原因。首先是关键词的使用有一定的文化偏见。例如,SSN被标记为美国社会安全号码的关键字。但在荷兰,可能将SOFINR作为社会财务编号的列名称缩写,而SOFINR目前未被标记。

第二个原因是该功能仅支持英语,并为少数非英语语言(西班牙语,葡萄牙语,法语,德语和意大利语)提供部分支持。(正如我在德国的SQL Konferenz上所写的那样,我发现Personalausweis是德国身份证的名称)。但是,我之前提供的MSDN没有提及支持的语言或排序规则。我希望MSDN页面得到更新以反映支持的语言和排序规则,以避免对用户造成混淆。

数据发现和分类报告

一旦你审查和分类你的数据,你将得到一个报告。以AdventureWorks2008为例,我将接受所有39条建议并单击保存 > 查看报告。结果如下:

该报告显示AdventureWorks2008数据库在19个已分类的不同列表中有39个不同的列。这是您现在可以交给审计团队的信息。

此报告位于数据库级别。这意味着您将需要推出自己的解决方案,以同时从多个数据库中获取详细信息。应该可以使用一些Powershell 的奇技淫巧来提取数据。或者,更好的是,启动PowerBI并使用它来构建自己的仪表盘。

总结

SQL数据发现和分类功能是微软迈出的第一步,帮助用户了解企业中哪里可能存在敏感数据。这也是一个好时机来提醒你为什么数据字典非常重要。即使使用了所有适当的工具,所有合适的人员,使用所有正确的知识,您仍然有可能错过一些敏感数据列。

那是因为实际生活很复杂,所以你的数据也是如此。识别和分类数据并非易事。只用右键单击鼠标并不能获得一个完美的结果。它需要数据专业人员的努力来为数据分类策划必要的元数据。并非每个数据专业人员都有时间或耐心进行此类工作。

但是数据发现和分类工具只是迈出的第一步。我迫不及待地想看着它成长。