BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

SQL Server 2016:动态数据屏蔽

| 作者 Jonathan Allen 关注 595 他的粉丝 ,译者 谢丽 关注 11 他的粉丝 发布于 2015年6月23日. 估计阅读时间: 2 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

行级安全很适合于全有或全无决策,但有时候,用户需要访问数据的子集。例如,信用卡或者社会保险号的后四位。这可以在应用程序层面实现,但会留下犯错的空间。只要一次忘记屏蔽,就会导致敏感信息泄露。

SQL Server 2016试图通过一项名为“动态数据屏蔽(Dynamic Data Masking)”的特性解决这个问题。如果列在创建列时附加屏蔽,那么它默认只会返回透过屏蔽暴露出来的数据。当前,SQL Server提供了三种类型的屏蔽:

  • Default屏蔽会根据数据类型返回‘XXX’、0或‘01.01.2000 00:00:00.0000000’。
  • Email屏蔽会返回‘aXX@XXXX.com’,其中“a”是电子邮件地址的第一个字母,“com”为顶级域名。
  • Partial屏蔽返回前N个字母、像‘XXX-XX-XX’这样的常量表达式和最后N个字母。

有两种方法可以解除数据屏蔽。第一种是拥有UNMASK全局权限,它可以为用户关闭所有的数据屏蔽。第二种是将屏蔽列转换成底层数据类型。例如:

SELECT FirstName, CAST (Email AS nChar(50)) FROM Members;

局限性

由于屏蔽可以通过类型转换消除,所以不应该将这项特性看作是安全特性。确切地说,它是一个可以与诸如加密敏感信息、不允许用户执行“动态查询(ad hoc queries)”这样的最佳实践结合使用的便利功能。

屏蔽可能导致ORM出现问题。如果ORM不支持按字段跟踪变化,那么它可能会在更新操作时用屏蔽值覆盖实际的值。

查看英文原文:SQL Server 2016: Dynamic Data Masking

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT