我们在前面分别介绍了《【SQL Server 2016动态数据屏蔽入门】配置动态数据屏蔽》和《【SQL Server 2016动态数据屏蔽入门】Azure SQL 数据库V12(预览版)的动态数据屏蔽》。现在,我们将具体介绍如何定义屏蔽。
在Azure预览门户页,我们选择导航路线为“浏览全部/SQL数据库/[数据库名称]/动态数据屏蔽(预览版)”。到这里会显示一些预定义屏蔽功能的摘要说明。然后点击“添加屏蔽”。在字段下拉列表中选中“HomePhone”字段,在“屏蔽域格式”下拉列表中选择“定制字符串”。使用“0”作为起始显示字符位置前缀参数,“ XXX-XXX-”作为填充字符串,设置末尾显示字符数为“4”。点击“新建屏蔽规则”页的“保存”按钮,然后回到“动态数据屏蔽(预览版)”页面再次点击保存。门户会显示提示信息表示修改的设置已生效。
图15:在Azure SQL数据库中为“HomePhone”字段创建设置屏蔽规则
我们再来查询一下员工表看设置是否生效。这里要注意,屏蔽规则应用完全生效可能需要一两分钟时间。
图16:“HomePhone”字段应用屏蔽规则之后查询员工表结果
Azure SQL数据库中屏蔽功能表现与SQL Server 2016 CTP2中结果一样。在这一步,很显然我们也可以像在前面GUI中操作一样的方式来定义其它屏蔽规则。现在,似乎我们必须用门户页GUI来定义屏蔽规则,因为如果我使用DDL来定义,虽然语法会接受通过,但是输出并没有改变。
Azure SQL数据库内置了一些常见的屏蔽规则,其中就包括了为社会安全号码(SSN)提供的内置规则。我们可以给员工信息表中SSN字段设置屏蔽,如下图所示。
图17:使用内置屏蔽规则应用与社会安全号码(SSN)
设置后查询结果如下图18。
图18:社会安全号码(SSN)字段配置屏蔽规则后查询员工表的结果
尽管数据显示屏蔽了,但现实效果不一定是我们想要的格式。这个屏蔽码对SSN字段很有效,该字段域比较宽,而且数据中间有破折号分隔。但是对于其它字段这个形式就不一定合适了。图19展示了对员工表的“EmpID”字段应用屏蔽规则时启用“数字(随机数字范围)”选项的配置。
图19:用数字(指定范围内随机数)作为屏蔽码应用于员工表
很显然,用随机数据屏蔽“EmpID”是不现实的,这里只是为了展示这种内置的屏蔽功能。
另外,要注意动态数据屏蔽还有一个选项是设置特权用户的。这里设置的特权用户在显示数据时不启用屏蔽规则。如果要演示这一特性,我们需要创建用户并另外建立与Azure SQL数据库的连接。这部分的详细操作多少有点偏离本文的主题,用户创建和模拟演示的步骤还是比较容易的,不再详述。
【编辑推荐】
- 【SQL Server 2016数据加密新功能实战】三步配置Always Encrypted安全功能
- 【SQL Server 2016数据加密新功能实战】如何测试Always Encrypted安全特性?
- 【SQL Server 2016动态数据屏蔽入门】配置动态数据屏蔽
- 【SQL Server 2016动态数据屏蔽入门】Azure SQL 数据库V12版的动态数据屏蔽
【责任编辑:honglu TEL:(010)68476606】