【问题标题】:Old data stored in database file存储在数据库文件中的旧数据
【发布时间】:2009-05-15 08:38:44
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    这样您就知道您只是在处理新数据,而不会以某种方式将旧数据存储在文件中。

    【讨论】:

    • 谢谢,这也是我的第一个想法 - 但这是一个大型生产数据库,不幸的是它不是一个真正的选择。
    【解决方案2】:

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

    【讨论】:

    • 是的,正如我所说的,通过压缩、备份、sp_clean等。你知道其他机制吗?
    【解决方案3】:

    绝对确定:

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

    【讨论】:

      【解决方案4】:

      编写数据库脚本

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

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

      删除数据库

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

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

      从平面文件中加载数据

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多