如何确保我从db表中删除的所有数据不再存储在硬盘上的mdb文件(和其他文件)中?
这是我的情况:
我的客户端用于在其数据库(SQL Server)中存储未加密的信用卡数据。由于PCI要求,他们现在加密所有数据......但是,mdb文件仍然有一些旧的,未加密的CC写入它。
我们已经确认数据库中没有更多的CC;我们压缩了数据库;我们将它备份到一个文件并重新恢复到一个新的数据库;我们甚至运行sp_cleandb
然而,当我们分析磁盘上的持久文件时,我们仍然会发现一些未加密的CC - 它们不存储在数据库中,它们不是SP,视图或UDF的一部分,并且它们不会出现在任何表元数据中。
所以,我的问题 - 如何确保所有“坏”CC数据消失?或者,更一般地说,如何强制MSSQL只存储当前数据,并从任何“垃圾”中清除文件?
答案 0 :(得分:5)
根据您的所作所为,我建议您创建一个新数据库,并将所有数据移入其中。
通过这种方式,您知道您只使用新数据,并且不会以某种方式将遗留数据存储在文件中。
答案 1 :(得分:1)
您是否尝试过释放数据库文件(和日志文件)中未使用的空间?
答案 2 :(得分:1)
绝对确定:
答案 3 :(得分:1)
编写数据库脚本
将数据批量复制到平面文件
查看平面文件中的未加密数据
删除数据库
使用安全删除删除数据库文件:http://www.snapfiles.com/Freeware/security/fwerase.html
使用脚本在服务器上创建一个新数据库
从平面文件中加载数据
答案 4 :(得分:0)
如果您对此主题感兴趣,我建议:
数据库系统取证分析中的隐私威胁,数据存档管理国际会议,2007年ACM SIGMOD数据管理国际会议论文集 http://www.cs.umass.edu/~miklau/pubs/sigmod2007LMS/stahlberg07forensicDB.pdf