旧数据存储在数据库文件中

时间:2009-05-15 08:38:45

标签: sql-server database persistence pci-dss computer-forensics

如何确保我从db表中删除的所有数据不再存储在硬盘上的mdb文件(和其他文件)中?

这是我的情况:
我的客户端用于在其数据库(SQL Server)中存储未加密的信用卡数据。由于PCI要求,他们现在加密所有数据......但是,mdb文件仍然有一些旧的,未加密的CC写入它。
我们已经确认数据库中没有更多的CC;我们压缩了数据库;我们将它备份到一个文件并重新恢复到一个新的数据库;我们甚至运行sp_cleandb 然而,当我们分析磁盘上的持久文件时,我们仍然会发现一些未加密的CC - 它们不存储在数据库中,它们不是SP,视图或UDF的一部分,并且它们不会出现在任何表元数据中。

所以,我的问题 - 如何确保所有“坏”CC数据消失?或者,更一般地说,如何强制MSSQL只存储当前数据,并从任何“垃圾”中清除文件?

5 个答案:

答案 0 :(得分:5)

根据您的所作所为,我建议您创建一个新数据库,并将所有数据移入其中。

通过这种方式,您知道您只使用新数据,并且不会以某种方式将遗留数据存储在文件中。

答案 1 :(得分:1)

您是否尝试过释放数据库文件(和日志文件)中未使用的空间?

答案 2 :(得分:1)

绝对确定:

  • 以某种文本格式转储您的数据,例如CSV
  • 在CSV中搜索任何未加密的数据&删除它
  • 创建一个新的空数据库
  • 将CSV加载到新数据库

答案 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