如何从敏感数据删除或损坏的mysql转储数据库?

时间:2011-03-22 15:31:15

标签: mysql security

我正在使用mysql。有些表包含敏感数据,如用户名,电子邮件地址等。我想转储数据,但表中的这些列已删除或修改为某些虚假数据。有什么方法可以轻松完成吗?

3 个答案:

答案 0 :(得分:5)

我正在使用这种方法:

  1. 将敏感表的内容复制到临时表。
  2. 清除/加密敏感列。
  3. 向mysqldump.exe提供--ignore-table个参数以保留原始表格。
  4. 它保留了外键关键字,你可以保留不敏感的列。

    前两个操作包含在我执行转储之前调用的存储过程中。它看起来像这样:

    BEGIN 
        truncate table person_anonymous;
        insert into person_anonymous select * from person;
    
        update person_anonymous              set Title=null, Initials=mid(md5(Initials),1,10), Midname=md5(Midname), Lastname=md5(Lastname), Comment=md5(Comment);
    END
    

    如您所见,我没有清除字段的内容。相反,我保持哈希。这样,您仍然可以看到哪些行具有相同的值,并且在导出之间您可以看到是否有任何更改,而没有任何人能够读取实际值。

答案 1 :(得分:2)

有一个名为Jailer的工具,通常用于导出数据库的子集。我们在工作中使用它来从生产备份创建一个较小的测试数据库,并对所有敏感数据进行模糊处理。

GUI有点粗糙,但Jailer是迄今为止我发现的最佳选择。 您可以简单地取消选择敏感表或列,并获得其余的完整副本。 Jailer还支持在导出期间对数据进行模糊处理 - 例如,您可以使用md5哈希所有用户名或将所有电子邮件地址更改为user@example.org。

tutorial让你入门。

答案 2 :(得分:1)

ProxySQL是另一种方法。

这篇文章解释了如何使用proxysql对数据进行模糊处理。

https://proxysql.com/blog/obfuscate-data-from-mysqldump