匿名化客户数据以进行开发或测试

时间:2008-11-03 23:17:36

标签: sql data-scrubbing

我需要使用真实的客户信息(姓名,地址,电话号码等)获取生产数据并将其移至开发环境中,但我想删除任何真实客户的外表资讯

this question的一些答案可以帮助我生成新的测试数据,但是如何在生产数据中替换这些列,但保留其他相关列?

假设我有一张10000名假名的桌子。我应该使用SQL更新进行交叉连接吗?或者做一些像

这样的事情
UPDATE table
SET lastname = (SELECT TOP 1 name FROM samplenames ORDER By NEWID())

3 个答案:

答案 0 :(得分:11)

对数据进行匿名化可能会非常棘手,如果操作不当可能会导致您遇到麻烦,例如AOL when they released search data a while back发生的事情。在尝试转换现有客户数据之前,我会尝试从头开始创建测试数据。事情可能会导致您能够使用诸如行为分析和您可能认为不敏感的其他数据点等内容来确定数据属于谁。我宁愿安全而不是抱歉。

答案 1 :(得分:8)

如果您了解数据库,这比听起来容易。有一件事是必须了解个人信息未规范化的地方。例如,客户主文件将具有名称和地址,但订单文件也将具有可能不同的名称和地址。

我的基本流程:

  1. ID数据(即列)和包含这些列的表。
  2. 标识这些列的“主”表,以及这些列的非规范化实例。
  3. 调整主文件。而不是试图随机化它们(或使它们变得虚假),将它们连接到文件的密钥。对于客户123,将名称设置为name123,地址为123 123rd St,123town,CA,USA,电话1231231231.这还有使调试变得非常简单的额外好处!
  4. 通过执行相同类型的去个性化从主文件更新来更改非正常实例
  5. 看起来不漂亮,但确实有效。

答案 2 :(得分:4)

有一些工具可以从我发现的数据库中删除敏感数据。请注意,我自己还没有尝试过任何一个:

此处还有一系列卫生数据库脚本可能会有所帮助:Mysql Anonymous