SQL Server ->> SQL Server 2016新特性之 -- Dynamic Data Masking
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之前,也是用真实的数据
结果如下
参考:
SQL Server ->> SQL Server 2016新特性之 -- Dynamic Data Masking的更多相关文章
- SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)
原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一 ...
- SQL Server 2016新特性:列存储索引新特性
SQL Server 2016新特性:列存储索引新特性 行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的. 非聚集的列存储索引支持筛选条件. 在内存优化表中可以有一个列存储索引,可 ...
- SQL Server 2016新特性:DROP IF EXISTS
原文:SQL Server 2016新特性:DROP IF EXISTS 在我们写T-SQL要删除某个对象(表.存储过程等)时,一般会习惯先用IF语句判断该对象是否存在,然后DROP,比如: 旧 ...
- SQL Server 2016 的「動態資料遮罩 (Dynamic Data Masking)」
一些特別注重資訊安全.個人資料的公司或產業 (如: 金融.保險業),通常「測試用資料庫」的資料,會加上「遮蔽:去識別化」的功能,避免個資外洩.以往必須自己撰寫 SQL 語句或 Stored Proce ...
- Microsoft: Get started with Dynamic Data Masking in SQL Server 2016 and Azure SQL
Dynamic Data Masking (DDM) is a new security feature in Microsoft SQL Server 2016 and Azure SQL DB. ...
- Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码
<Windows Azure Platform 系列文章目录> 我们在使用关系型数据的时候,有时候希望: - 管理员admin,可以查看到所有的数据 - 普通用户,某些敏感字段,比如信用卡 ...
- SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Row-Level Security(行级别安全控制)
SQL Server 2016 CPT3中包含了一个新特性叫Row Level Security(RLS),允许数据库管理员根据业务需要依据客户端执行脚本的一些特性控制客户端能够访问的数据行,比如,我 ...
- SQL Server 2016新特性:Live Query Statistics
SSMS可以提供可以查看正在执行的计划.live query plan可以查看一个查询的执行过程,从一个查询计划操作到另外一个查询计划操作.live query plan提供了整体的查询运行进度和操作 ...
- SQL Server 2016新特性:In-Memory OLTP
存储格式修改 在2014,2016中修改了内存优化表的存储格式,新的格式是序列的并且the database is restarted once during database recovery. ...
随机推荐
- Windows与linux添加用户命令
Windows 查看当前存在用户: net user 查看当前用户组: net localgroup 添加用户(以添加用户test密码test1234为例): net user test test12 ...
- lua table、ipairs/pairs基础知识
1.什么是table? table是Lua最复杂最强大的数据结构,Lua本身并不是面向对象语言,但是对面向对象中毒比较深的程序员,可以借助table”完美”地模拟面向对象编程.最简单地,我们可以把ta ...
- javascrpit sort()数组对象中排序
/*ionic 调用 * @param attr 排序的属性 如number属性 * @param rev true表示升序排列,false降序排序 * */ commonSortMethod(att ...
- 一个数字键盘引发的血案——移动端H5输入框、光标、数字键盘全假套件实现
https://juejin.im/post/5a44c5eef265da432d2868f6 为啥要写假键盘? 还是输入框.光标全假的假键盘? 手机自带的不用非得写个假的,吃饱没事干吧? 装逼?炫技 ...
- Oracle 客户端安装
Oracle 客户端的安装方式一种有两种: 1.Oracle标准客户端 点击下载 这是Oracle提供的标准版11r2的客户端 2.Oracle Database Instant Client(即 ...
- java多线程开发,Executors、FutureTask、Callable
java多线程如何应用呢,几乎学java的同学都知道Thread类和Runable接口.继承Thread类或者实现Runable接口,调用thread的start方法即可启动线程. 然后是线程池,就是 ...
- Unity热更方案汇总
http://www.manew.com/thread-114496-1-1.html 谈到目前的代码热更方案:没什么特别的要求 <ignore_js_op> toLua(效 ...
- r.js 配置文件 example.build.js 不完整注释
/* * This is an example build file that demonstrates how to use the build system for * require.js. * ...
- Linux定时增量更新文件--转
http://my.oschina.net/immk/blog/193926 动机与需求:现在有两台服务器A和B,由于A的存储随时会挂(某些原因),所以需要B机器上有A的备份,并且能够与A同步更新 一 ...
- XAML语法及标记扩展、附加属性、特定的字符和空白
1.对象元素语法 使用开闭标签将对象定义一个XML元素,这种语法与其他标记语言如HTML的元素语法非常相似,在以左右尖括号保卫要设置的类或结构的类型名称.对象元素可以声明0个或多个属性,以一个或多个空 ...