专栏首页SQL数据发现与分类

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

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

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

本文的版权归 和风 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如果我不擅长数学,如何开始学习机器学习

    在“理解数学”之前他们不能在所从事学科中取得卓越的成就,这就是他们认为数学家比他们聪明的地方。

    和风
  • 密码管理器Top5

    我们使用密码来保证数据的安全性和机密性。现代犯罪的一大罪行是身份盗用,当密码泄露时这就很容易实现。而这就要求我们要很好的密码管理。如果你已经考虑过使用密码管理器...

    和风
  • MySQL集群:高可用性DBMS

    如果你在寻找一个不会发生单点故障的数据库管理系统,那么水平拓展的MySQL集群分布式多主架构将是您的最佳选择。MySQL集群可以通过MySQL和...

    和风
  • 138. 子数组之和 map存储加规律

    给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置。 假定一定存在这样的字数组。 样例 给出 [-3, 1, 2,...

    和蔼的zhxing
  • 从编程小白到全栈开发:数据 (1)

    有些事情时刻都在发生,但是我们通常很少意识到它们的存在。比如,当我们使用网页或移动应用的时候,其实在不断的产生着数据:注册一个网站或app的账号、发一条微博、写...

    一斤代码
  • Nebula Graph 在大规模数据量级下的实践和定制化开发

    图数据在社交推荐、多跳实时计算、风控和安全等领域有可期待的前景。如何用图数据库高效存储和查询大规模异构图数据,是一个重大挑战。本文描述了开源分布式图数据库 Ne...

    NebulaGraph
  • 《你问我答》第二期 | 解答关于TubeMQ、TBase、Oceanus与数据湖的疑问

    ? 各位小伙伴们大家好,我们又见面啦~ 上一期的《你问我答》中 我们的专家解答了大伙对于腾讯大数据团队的开源项目,以及技术实践等方面的一些疑问 与此同时,我们...

    腾讯大数据
  • 可再生能源物联网:当物联网遇到能源

    随着对全球变暖和化石燃料消耗问题的关注不断上升,世界正在转向替代能源以满足其需求。其中最具可持续性的选择是可再生能源。该领域遍及太阳能,风能,水力和地热等各种能...

    eru
  • 深度学习之安装 Jupyter

    Notebooks 很快已经成为了数据操作不可或缺的工具。它在 大数据清理和探究,可视化,机器学习, 和 大数据分析中都有广泛运用.

    李小白是一只喵
  • 三十六亿的《哪吒》历时五年,如何用AI解决动画创作难题?

    电影《哪吒之魔童降世》自 7 月 26 日上映以来,一直在刷新动画电影的票房纪录。截止目前,19 天里全网票房突破 36 亿,观影人数超过 1 亿!成为了首部观...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券