【问题标题】:Purging Database Records清除数据库记录
【发布时间】:2010-11-29 13:15:54
【问题描述】:

我正在处理必须存储一些支付卡数据的问题。为了符合 PCI DSS 规定,我们必须从磁盘中清除数据,不仅要从存储系统中删除文件,还要使用随机数据序列写入字节,以使数据更难恢复。

我希望能够利用数据库来满足我的存储需求(用于提高并发性和更简单的查询),但是我找不到以这种方式清除单个记录的任何方法。

有没有已知的技术可以做到这一点?

【问题讨论】:

    标签: database pci-dss


    【解决方案1】:

    据我所知,PCI DSS 仅对存储在文件系统中的文件需要进行安全擦除。 RDBMS 不一定以可预测的方式将数据映射到文件系统。您可以做的(如果您仍想“安全擦除信息”)是

    1. 更新您要删除的所有记录
    2. 删除数据

    假设您要删除 PAN 为 4444441234567890 的所有记录。您可以编写以下语句:

    update card_data set PAN='0000000000000000' where PAN = '4444441234567890';
    然后
    delete card_data where PAN='0000000000000000';

    此外,您可能有兴趣了解 Oracle 和 SQL Server 都支持的透明数据加密

    【讨论】:

    • 在oracle中,使用rowid引用记录,然后可以根据需要更新每一列,然后删除。
    • 可悲的是,我没有最新版本的 Oracle 或 SQL 2008 可用,但 TDE 听起来非常有趣并且完全适合这种情况。
    • ...这是升级数据库的有力理由
    • TDE 是最好的,覆盖现有数据可能不会达到预期的效果,并且可以从它所在行之外的许多其他地方恢复明文数据。 cs.umass.edu/~miklau/pubs/sigmod2007LMS/…
    • 如果数据库有日志文件怎么办,例如Postgres WAL?
    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多