博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server ->> SQL Server 2016新特性之 -- Dynamic Data Masking
阅读量:5341 次
发布时间:2019-06-15

本文共 1434 字,大约阅读时间需要 4 分钟。

Dynamic Data Masking是为了防止敏感数据暴露给未经授权的用户,以一种最小开销和维护成本的形式。Dynamic Data Masking用于表的字段,相当于盖住字段数据的一部分。比如一些像邮件或者工资这样敏感的数据,涉及PII的,我们可以运用这个功能。运用这个功能的步骤,首先先定义一组人(database role)可以拥有看数据的权限,然后GRANT UNMASK权限给这个角色组。微软提供了4种类型的masking给我们选择:default,email,random和custom string。default是字符类型替换为xxxx,数字替换为0,时间变成1990-01-01。email适用于email类型,除了第一个字符、@符号和.com其他的都替换成x。

 

注意的地方:

1) SELECT INTO、INSERT INTO和用数据库的IMPORT/EXPORT功能会把mask也带入到新生成的表或者目标表里面

2)加了mask的数据在备份好的文件中也是被masked的

3)加了MASK的字段并不能阻止被有更新权限的用户更新

4)兼容模式必须是130(SQL SERVER 2016)

 

CREATE TABLE dbo.DMMTest(    strcol1 nvarchar(500) MASKED WITH (FUNCTION = 'default()') NULL,    intcol1 int MASKED WITH (FUNCTION = 'default()') NULL,    dttmcol1 datetime MASKED WITH (FUNCTION = 'default()') NULL,    bincol1 varbinary(100) MASKED WITH (FUNCTION = 'default()') NULL,    emailcol1 nvarchar(200) MASKED WITH (FUNCTION = 'email()') NULL,    randomcol1 int MASKED WITH (FUNCTION = 'random(3,10)') NULL)insert dbo.DMMTest(    strcol1,    intcol1,    dttmcol1,    bincol1,    emailcol1,    randomcol1)values('abcdefghijklmn',123456789,getdate(),0x123456789,'jerrychen@cjj.com',123456789)

 

 如果用一个没有被GRANT UNMASK的用户看到的数据是这样的

 

查看哪些字段加了mask

SELECT c.name, tbl.name as table_name, c.is_masked, c.masking_function  FROM sys.masked_columns AS c  JOIN sys.tables AS tbl       ON c.[object_id] = tbl.[object_id]  WHERE is_masked = 1;

 

GROUP BY 其实发生在mask之前,也是用真实的数据

 

结果如下

 

 

参考:

转载于:https://www.cnblogs.com/jenrrychen/p/6159544.html

你可能感兴趣的文章
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>
使用 MarkDown & DocFX 升级 Rafy 帮助文档
查看>>
THUPC2019/CTS2019/APIO2019游记
查看>>
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>
POJ 2960 S-Nim 博弈论 sg函数
查看>>
Dijkstra模版
查看>>
一个简单的插件式后台任务管理程序
查看>>
GDB调试多进程程序
查看>>
组合数
查看>>
第二章作业心得
查看>>
CMD批处理延时启动的几个方法
查看>>
转:LoadRunner中web_custom_request 和 web_submit_data的差别
查看>>
HTC G7直刷MIUI开启A2SD+亲测教程
查看>>
shiro的rememberMe不生效
查看>>
const 不兼容的类型限定符问题
查看>>