我正在使用 mysql。一些表包含敏感数据,如用户名、电子邮件地址等。我想转储数据,但表中的这些列被删除或修改为一些虚假数据。有什么方法可以轻松做到吗?
最佳答案
我正在使用这种方法:
- 将敏感表的内容复制到临时表。
- 清除/加密敏感列。
- 向 mysqldump.exe 提供
--ignore-table
参数以保留原始表。
它保留外键约束,您可以保留不敏感的列。
前两个操作包含在我执行转储之前调用的存储过程中。它看起来像这样:
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
如您所见,我没有清除字段的内容。相反,我保留一个哈希值。这样,您仍然可以看到哪些行具有相同的值,并且在导出之间您可以看到是否发生了某些变化,而无需任何人读取实际值。
关于mysql - 如何从删除或损坏敏感数据的 mysql 中转储数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5393673/