我们分别介绍了《【SQL Server 2016动态数据屏蔽入门】配置动态数据屏蔽》和《【SQL Server 2016动态数据屏蔽入门】Azure SQL 数据库V12(预览版)的动态数据屏蔽》。现在,我们将详细介绍如何定义掩码。 在Azure预览门户页面,我们选择导航路径为“浏览所有/SQL数据库/[数据库名称]/DynamicDataMasking(预览版)”。此处显示一些预定义阻塞函数的摘要说明。然后单击“添加块”。在字段下拉列表中选择“HomePhone”字段,在“掩码域格式”下拉列表中选择“自定义字符串”。以“0”作为起始显示字符位置的前缀参数,“XXX-XXX-”作为填充字符串,设置末尾显示字符个数为“4”。在“新建拦截规则”页面点击“保存”按钮,然后返回“动态数据屏蔽(预览版)”页面,再次点击保存。Portal会弹出提示信息,提示修改的设置已经生效。 图15:在AzureSQL数据库中为“HomePhone”字段创建并设置拦截规则 我们再查询一下employee表,看看设置是否有效。请注意,完全应用阻止规则可能需要一两分钟。 图16:对“HomePhone”字段应用屏蔽规则后,查询员工表的结果 AzureSQL数据库中的屏蔽功能与SQLServer2016CTP2中的结果相同。到这一步,显然我们还可以像前面的GUI一样定义其他的拦截规则。现在看来,我们必须使用门户页面GUI来定义阻塞规则,因为如果我使用DDL来定义,虽然语法会接受,但输出不会改变。 AzureSQL数据库内置了一些常见的阻止规则,包括社会安全号码(SSN)的内置规则。我们可以屏蔽员工信息表中的SSN字段,如下图所示。 图17:使用内置屏蔽规则申请和社保号码(SSN) 后,查询结果如图18所示。 图18:employee表查询后的结果socialsecuritynumber(SSN)字段配置了屏蔽规则 虽然数据显示是屏蔽了,但实际效果不一定是我们想要的格式。此屏蔽代码适用于具有宽字段和破折号分隔数据的SSN字段。但这种形式不一定适用于其他领域。图19显示了在将屏蔽规则应用于员工表的“EmpID”字段时启用了“Number(随机数范围)”选项的配置。 图19:用一个数字(指定范围内的随机数)作为屏蔽码应用到employee表 显然,用随机数据屏蔽“EmpID”是不现实的,这里只是为了说明这个内置的屏蔽功能。 另外需要注意的是,动态数据屏蔽还有一个选项可以设置特权用户。此处设置的特权用户在显示数据时不启用屏蔽规则。为了演示此功能,我们需要创建一个用户并另外建立与AzureSQL数据库的连接。这部分的详细操作有点偏离本文的主题。用户创建和模拟演示的步骤比较简单,这里就不赘述了。【小编推荐】【SQLServer2016数据加密新特性实战】AlwaysEncrypted安全特性三步配置【SQLServer2016数据加密新特性实战】如何测试AlwaysEncrypted安全特性?【SQLServer2016动态数据屏蔽入门】配置动态数据屏蔽【SQLServer2016动态数据屏蔽入门】AzureSQLDatabaseV12动态数据屏蔽【责任编辑:鸿路电话:(010)68476606】
