我需要使用真实的客户信息(姓名,地址,电话号码等)获取生产数据并将其移至开发环境中,但我想删除任何真实的客户信息.
这个问题的一些答案可以帮助我生成新的测试数据,但是如何在生产数据中替换这些列,但保留其他相关列?
假设我有一张有10000个假名的桌子.我应该使用SQL更新进行交叉连接吗?或者做类似的事情
UPDATE table SET lastname = (SELECT TOP 1 name FROM samplenames ORDER By NEWID())
duckworth.. 11
对数据进行匿名化可能会非常棘手,如果操作不当可能会导致您遇到麻烦,例如AOL在一段时间内发布搜索数据时发生的事情.在尝试转换现有客户数据之前,我会尝试从头开始创建测试数据.事情可能会导致您能够使用诸如行为分析和您可能认为不敏感的其他数据点等内容来确定数据属于谁.我宁愿安全而不是抱歉.
对数据进行匿名化可能会非常棘手,如果操作不当可能会导致您遇到麻烦,例如AOL在一段时间内发布搜索数据时发生的事情.在尝试转换现有客户数据之前,我会尝试从头开始创建测试数据.事情可能会导致您能够使用诸如行为分析和您可能认为不敏感的其他数据点等内容来确定数据属于谁.我宁愿安全而不是抱歉.
如果您了解数据库,这比听起来容易.有一件事是必须了解个人信息未规范化的地方.例如,客户主文件将具有名称和地址,但订单文件也将具有可能不同的名称和地址.
我的基本流程:
ID数据(即列)和包含这些列的表.
标识这些列的"主"表,以及这些列的非规范化实例.
调整主文件.而不是试图随机化它们(或使它们变得虚假),将它们连接到文件的密钥.对于客户123,将名称设置为name123,地址为123 123rd St,123town,CA,USA,电话1231231231.这还有使调试变得非常简单的额外好处!
通过从主文件更新或通过执行相同类型的去个性化来更改非正常实例
它看起来不漂亮,但它的工作原理.
有一些工具可以从我发现的数据库中删除敏感数据。请注意,我还没有尝试过其中的任何一个:
Data :: Anonymization,一个RubyGem。
Mysql Anonymous,一个Python脚本。
这里还提供了一系列消毒DB脚本,这可能会有所帮助:https : //gist.github.com/Tyriar/d3635c6b6e32ac406623