Sql server 存储在数据库文件中的旧数据
如何确保从db表中删除的所有数据不再存储在硬盘上的mdb文件(和其他文件)中 以下是我的情况:Sql server 存储在数据库文件中的旧数据,sql-server,database,persistence,pci-dss,computer-forensics,Sql Server,Database,Persistence,Pci Dss,Computer Forensics,如何确保从db表中删除的所有数据不再存储在硬盘上的mdb文件(和其他文件)中 以下是我的情况: 我的客户过去常常在他们的数据库(SQL Server)中存储未加密的信用卡数据。由于PCI的要求,他们现在加密了所有的数据。。。但是,mdb文件中仍然写入了一些旧的、未加密的CC。 我们已经确认数据库中不再有CC;我们压缩了数据库;我们已经将其备份到一个文件中,并将其重新恢复到一个新的数据库中;我们甚至还运行了sp_cleandb。 然而,当我们分析磁盘上的持久化文件时,仍然会发现一些未加密的CCs,
我的客户过去常常在他们的数据库(SQL Server)中存储未加密的信用卡数据。由于PCI的要求,他们现在加密了所有的数据。。。但是,mdb文件中仍然写入了一些旧的、未加密的CC。
我们已经确认数据库中不再有CC;我们压缩了数据库;我们已经将其备份到一个文件中,并将其重新恢复到一个新的数据库中;我们甚至还运行了sp_cleandb。
然而,当我们分析磁盘上的持久化文件时,仍然会发现一些未加密的CCs,它们不存储在数据库中,它们不是SP、视图或UDF的一部分,也不出现在任何表元数据中
那么,我的问题是——如何确保所有“坏”CC数据都消失了?或者,更一般地说,我如何强制MSSQL只存储当前数据,并从任何“垃圾”中清除文件?基于您所做的工作,我建议创建一个新数据库,并将所有数据移动到该数据库中
这样,您就知道您只处理新数据,而旧数据不会以某种方式存储在文件中。您是否尝试释放数据库文件(和日志文件)中未使用的空间?以确保:
- 以某些文本格式转储数据,例如CSV
- 在CSV中搜索任何未加密的数据并将其删除
- 创建一个新的空数据库
- 将CSV加载到新数据库中
- 为数据库编写脚本
将数据大容量复制到平面文件
在平面文件中查找未加密的数据
删除数据库
使用安全删除命令删除数据库文件:
使用脚本在服务器上创建新数据库
从平面文件加载数据如果您对此主题感兴趣,我建议: 数据库系统法医分析中的隐私威胁,数据档案管理国际会议,2007年ACM SIGMOD数据管理国际会议记录
谢谢,这也是我的第一个想法-但这是一个大型生产数据库,不幸的是,这不是一个真正的选择。是的,正如我通过压缩、备份、sp_clean等所说的。你知道其他机制吗?