百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> SQLServer动态掩码的细致介绍(代码示例)
分享文章到:

SQLServer动态掩码的细致介绍(代码示例)

发布时间:08/01 来源:未知 浏览: 关键词:
?本篇文章给大家带来的内容是对于SQLServer动态掩码的细致介绍(代码示例),有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。 本篇文章给大家带来的内容是对于SQLServer动态掩码的细致介绍(代码示例),有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

动态数据掩码(DDM)是SQL Server 2016引入的一个新功能。目的就是限定没有权限的人去看到一些隐私信息。治理员会员能够决议哪些字段是需要被掩码的,那么怎样在不转变利用程序代码的根基上掩码?还要保障不管怎样拜访数据,都是一致的。

这是Azure SQL数据库中首次引入的特性,它在云上承受会员的测试,并已迁移到当地产品。我想许多其他的新特性也会遵循这条方式(云--当地)。

需要注意的是与我以前的行级别数据平安同样,这些都是数据平安相干内容(举荐课程:MySQL教程)

列数据掩码

第一新建一个在一些数据上带有掩码版的表。我将在表定义中开端的一个字段中增加一个掩码。注意,这样做的方式是在数据类型之后运用“mask with()”格局,但是在NULL和默许选项以前,要在圆括号内包括FUNCTION = ",它指定了我们的函数。在引号内,我们指定掩码。CREATE TABLE语句如下

CREATE TABLE MyTable
  ( MySSN VARCHAR (10) MASKED WITH (FUNCTION = 'default()') DEFAULT ('0000000000' )
 , MyName VARCHAR (200) DEFAULT ( ' ')
 , MyEmail VARCHAR (250) DEFAULT ( '')
 , MyInt int
)
GO
INSERT dbo. MyTable
 ( MySSN , MyName, MyEmail , MyInt)
VALUES
 ( '1234567890', 'Steve Jones', 'SomeSteve@SomeDomain.com', 10 )

要是新建者查询这个表,就会看到一个普通的表。我得到所有的数据,当它被插入时。这是由于我是一个有权限的会员。同理那些拥有dbo特权(db_owner或sysadmin角色)的会员将不会看到屏蔽数据。此刻新建一个正常的会员没有高权限的会员。固然,我需要授予普通的SQL Server权限来查看表中的数据。

CREATE USER mytest WITHOUT LOGIN
GRANT SELECT ON mytable TO mytest

此刻我们可以用这个会员查询这个表,看一下有什么不一样。

我可以在表上定义其他类型的掩码。有一个自定义的掩码格局,允许控制显示的内容,一个电子邮件地址的遮罩,和一个随机的数字遮罩。我们将在另一篇文章中细致计议这些题目。

此刻可以增加掩码到另一列上面,比方邮件MyEmail列,可以运用邮件掩码的格局,概括代码如下:

ALTER TABLE dbo.MyTable
 ALTER COLUMN MyEmail VARCHAR(250) MASKED WITH (FUNCTION='email()')
GO

然后查询效果如下:

也可以对多个和列进行掩码

CREATE TABLE MySecondTable (
  MyEmail VARCHAR( 250) MASKED WITH (FUNCTION= 'email()')
, MySSN VARCHAR (10) MASKED WITH (FUNCTION ='default()')
, MyID INT MASKED WITH (FUNCTION ='random(1,4)')
)GOINSERT MySecondTable VALUES
   ( 'myname@mydomain.com', '1234567890', 100 )
 , ( 'abrother@mycorp.com' , '0123456789' , 555)
 , ( 'somesister@somecompany.org' , '9876543210' , 999)

查询效果如下:

移除掩码

代码如下:

ALTER TABLE dbo.MySecondTable
  ALTER COLUMN MySSN DROP MASKED;

一旦我这样做,会员将直接看到真实数据。

MySSN列的数据是未屏蔽的,但是MyEmail和MyID的数据依然是屏蔽的

总结

动态数据屏蔽是一个非常不错的新特性,旨在更容易地维护数据不挨非特权会员的影响。这可以在数据库中实现,而不需要更改任何利用程序代码,从而允许您以最小的老本和工作量对利用程序会员屏蔽敏锐数据。我还要提示您,这并不是真正的平安特性。存储在磁盘和表中的数据不会以任何方式更改。这依然是纯文本数据,要是会员能够查询系统,他们依然可以潜在地查询您的数据并发明其值。

不管怎样,这个特性关于尤为是需要数据脱密运用的系统来说无疑是有帮忙的。固然17今后功能也有了长脚的进步背面有时机我会继续介绍。

以上就是SQLServer动态掩码的细致介绍(代码示例)的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有153人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板