环境:SQL Server 2012 我正在尝试为我们的组织构建一个包括数据屏蔽和加密的解决方案。
当前,我们没有任何数据屏蔽,因此没有必要。 我们正在识别可能将数据识别为敏感数据或不敏感数据的某些组合,这些组合可能导致一个人的身份。
一种方法是使用某种工具,例如Redgate Data Generator或DataVeil,它们可以为我们要用于Dev或UAT环境的字段的数据库生成虚拟数据。 其他将使用某种功能,该功能会根据长度将某些字符屏蔽为xxxx或****。
在生产环境中,根据了解,由于屏蔽是不可逆的,因此需要进行加密,我将在接下来的几周中进一步了解。 当从工具生成数据或使用TSQ1代码并基于对生产环境的密钥的访问将数据掩盖数据时,每个用户都将在UAT和Dev中看到相同的数据,因此可以使用上述方案。 请在您认为不合适的任何地方纠正我。
接下来是使用视图的基于用户的访问。使用视图进行安全保护的材料不多,因此请问如果采用这种方法而不是上面提到的方法,我们将如何实现。
我了解可以使用视图授予用户访问基础表的权限。 现有查询,SSRS报告和多维数据集又如何? 如何处理视图?我是否更改每个查询?我在这里不知所措。
答案 0 :(得分:2)
可以通过创建一个新的“蒙版”视图来完成“查看”选项,该视图包括源表中的所有列,并使用伪固定值替换敏感列。
例如:
create view vMaskPeople
as
SELECT ID, DateCreated, 'Sample Name' as FullName, 'Sample Telephone' as Phone
FROM People
如果您需要更多独特的样本数据,请对部分列进行掩盖,例如:
SELECT ID, DateCreated,
Left(FullName,3)+'XXXXXX' as FullName,
'XXX-XXXX-'+Right(Phone,4) as Phone
如果您无法以某种方式绑定开发环境以使用新的蒙版视图,则可以将源“人”表重命名为“人1”,然后将蒙版视图命名为“人”
答案 1 :(得分:1)
您提到了SQL数据生成器,它可以从头开始创建一个新的数据集,但是在Redgate,我们还有Data Masker,它允许您使用现有数据库并指定屏蔽规则,这听起来可能很适合您的情况更好。