1

环境:SQL Server 2012 我正在尝试帮助构建一个解决方案,其中包括我们组织的数据屏蔽和加密。

目前,我们没有任何数据屏蔽,因此没有必要。我们正在识别可以识别数据是否敏感的数据或可能导致个人身份的非敏感数据的某些组合。

一种方法是使用某种工具,如 Redgate 数据生成器或 DataVeil,它可以为我们想要用于 Dev 或 UAT 环境的字段生成数据库的虚拟数据。其他将使用某种功能,根据长度将某些字符屏蔽为 xxxx 或 ****。

在生产环境中,据了解,由于屏蔽是不可逆的,因此需要进行加密,我将在接下来的几周内了解更多信息。当数据是从工具生成或使用 TSQl 代码屏蔽并基于对生产环境密钥的访问时,上述场景适用于每个用户在 UAT 和 Dev 中看到相同数据的情况。请纠正我以上您认为不正确的任何内容。

接下来是使用视图的基于用户的访问。使用视图的安全性材料并不多,因此询问如果我们采用这条路线而不是上述路线,我们将如何实施。

我了解可以授予用户使用视图访问基础表的权限。现有的查询和 SSRS 报告和多维数据集呢?这怎么能与视图一起工作?我是否更改每个查询?我在这里有点迷路。

4

2 回答 2

3

视图选项可以通过创建一个新的“掩码”视图来完成,该视图包括源表中的所有列,并用一个虚拟的固定值替换敏感列。

例如:

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”,然后将蒙版视图命名为“人物”

于 2018-07-18T18:30:22.970 回答
2

您提到了 SQL 数据生成器,它从头开始创建一个新的数据集,但在 Redgate,我们也有Data Masker,它允许您获取现有数据库并指定屏蔽规则,这听起来可能更适合您的场景。

于 2018-07-20T12:53:41.023 回答