Search code examples
databasepci-dss

Purging Database Records


I'm dealing with having to store some payment card data. In order to be compliant with PCI DSS regulation, we have to purge the data from discs by not just deleting the file from the storage system, but also writing over the bytes with a random sequence of data to make it harder to recover the data.

I would like to be able to leverage a database for my storage needs, (for increased concurrency and simpler querying) however I can't find any way to purge individual records in this fashion.

Are there any known techniques for accomplishing this?


Solution

  • As far as I know about PCI DSS, secure wiping is required only for files stored in the filesystem. An RDBMS not necessarily maps data to the file system in a predictable way. What you can do (if you still want to "securely wipe information") is to

    1. Update all records that you want to delete
    2. Delete the data

    Let's say you want to delete all records where PAN is 4444441234567890. You can write the following statements:

    update card_data set PAN='0000000000000000' where PAN = '4444441234567890';
    and then
    delete card_data where PAN='0000000000000000';

    Further, you might be interested in knowing about Transparent Data Encryption supported by both Oracle and SQL Server.