2

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

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

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

4

5 回答 5

5

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

这样你就知道你只是在处理你的新数据,没有任何遗留数据会以某种方式存储在文件中。

于 2009-05-15T08:42:58.073 回答
1

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

于 2009-05-15T08:43:40.863 回答
1

绝对确定:

  • 以某种文本格式转储您的数据,例如 CSV
  • 在 CSV 中搜索任何未加密的数据并将其删除
  • 创建一个新的空数据库
  • 将 CSV 加载到新数据库中
于 2009-05-15T08:57:10.677 回答
1

编写数据库脚本

将数据批量复制到平面文件

在平面文件中查找未加密的数据

删除数据库

使用安全删除删除数据库文件:http ://www.snapfiles.com/Freeware/security/fwerase.html

使用您的脚本在服务器上创建一个新数据库

从平面文件中加载数据

于 2009-05-15T21:06:51.887 回答
0

如果你对这个话题感兴趣,我推荐:

数据库系统取证分析中对隐私的威胁,数据档案管理国际会议,2007 年 ACM SIGMOD 数据管理国际会议论文集 http://www.cs.umass.edu/~miklau/pubs/sigmod2007LMS/ stahlberg07forensicDB.pdf

于 2010-01-06T03:40:48.453 回答