DB2中的数据屏蔽(或生成综合数据),具有数据依赖性

时间:2018-07-25 09:48:33

标签: sql oracle db2 data-masking

我在工作中有此要求,并想就如何解决这个问题提出一些建议:

我支持一个有一些数据(DB2)的小组,我们的小组希望该数据是合成的/没有任何可识别的数据。问题在于,我们拥有的某些数据还会与我无法控制的另一组中的某些(DB2)表动态连接在一起。

在这种情况下,我该如何实现一定水平的数据屏蔽/合成数据生成?

这里是我的情况的一个简单的简单例子:

我的DB2数据:

员工编号-名称-电子邮件

我的源表(我不控制):

员工编号-名称-地址

我的系统希望显示某人的地址而不将其存储在本地。因此,现在,如果我只是混淆员工编号之类的数据,而我的“地址”来源却没有,那么我就无法获取该地址(联接将不起作用)。

那么,除了说要执行一些基本的算术运算之外,还有什么方法希望在加入时相反地做同样的事情吗?只是听起来不像是上帝的方法。

有什么建议吗?

{对标记oracle表示歉意,但我想听到尽可能多的想法}

1 个答案:

答案 0 :(得分:0)

您可以对员工编号进行哈希处理。因为它不能在连接上使用索引,所以会影响连接的性能(除非您让另一个团队在表达式上添加索引)

例如

 SELECT M.Hashed_Employee_Number
 ,      S.Address
 FROM        SourceTable S
 INNER JOIN  MyTable M
 ON HASH8(S.Employee_Number) = M.Hashed_Employee_Number

(当然,总是存在哈希冲突的机会