Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 存储在数据库文件中的旧数据_Sql Server_Database_Persistence_Pci Dss_Computer Forensics - Fatal编程技术网

Sql server 存储在数据库文件中的旧数据

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,

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

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


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

基于您所做的工作,我建议创建一个新数据库,并将所有数据移动到该数据库中


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

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

以确保:

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

    • 为数据库编写脚本

      将数据大容量复制到平面文件

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

      删除数据库

      使用安全删除命令删除数据库文件:

      使用脚本在服务器上创建新数据库


      从平面文件加载数据

      如果您对此主题感兴趣,我建议:

      数据库系统法医分析中的隐私威胁,数据档案管理国际会议,2007年ACM SIGMOD数据管理国际会议记录

      谢谢,这也是我的第一个想法-但这是一个大型生产数据库,不幸的是,这不是一个真正的选择。是的,正如我通过压缩、备份、sp_clean等所说的。你知道其他机制吗?