SQL Server数据库是Microsoft开发设计的一个关系数据库智能管理系统(RDBMS),广泛应用于电商、旅游、金融、游戏、移动办公、数据仓库和数据分析平台,包括常见的企业OA、ERP管理软件、财务管理软件、收银软件等。在案件取证过程中,取证人员经常会遇到SQL
Server数据库记录被删除的情况,本文将和大家分享恢复SQL Server删除记录的方法,希望为各位的取证工作提供一定的参考价值。(文末为大家准备了实操练习题哟~)
以下为图文讲解内容:
一、删除记录分析
SQL Server数据库一般是以两个文件存放的,一个扩展名为mdf,是数据文件;另一个扩展名为ldf,为日志文件。SQL Server删除数据库记录,主要有三种方式,分别是:
1.delete from数据表 where 条件——删除内容不删除定义,不释放空间。会记录每条删除操作的日志,删除方式为一条一条删除,会记录每个删除操作的日志。
2.drop table 数据表——删除整张表(包括表结构定义),速度最快,最彻底,不保存具体日志。
3.truncate table 数据表——删除整张表内容(只删除数据,保留表结构),没有保存具体删除日志,会截断数据并释放空间。
我们来测试一下SQL2000环境下,三种不同的删除方式,数据库记录能否恢复。原始记录如下,一共有95条记录:
(1)使用delete语句删除表记录,表记录被删除,再使用DBF6300数据库取证分析系统扫描。
(2)使用drop语句删除表,执行语句后,表已经无法查看,再使用DBF6300数据库取证分析系统扫描。
(3)使用truncate语句清空表,执行语句后,表记录被清空,再使用DBF6300数据库取证分析系统扫描。
二、删除恢复思路
SQL Server数据库记录被删除以后,通常有3种数据恢复方法。
1. 通过获取日志内的操作记录(增、删、改等),将日志记录转化为SQL语句,回写数据库记录。
2.通过事务日志回滚,有以下两个前提:
(1)至少有一个误删除之前的数据库完全备份。
(2)数据库的恢复模式(Recovery mode)是“完整(Full)”。
3. 使用针对数据库记录恢复的专业软件—DBF6300数据库取证分析系统。
数据库的日志恢复需要满足特定日志模式设置,并寻找适合版本的软件通过特定操作步骤进行恢复,且恢复数据具有时效性,需要及时恢复,通过日志方式恢复数据库数据需要很复杂的操作步骤,对于不太熟悉数据库的人员建议选择使用DBF6300数据库取证分析系统进行恢复分析操作。
三、案例实操
我们来看一个案例,2021年初,某执法部门突击检查一个洗浴中心,但是前台眼疾手快,瞬间清除了营业数据,导致执法人员无法查看收银记录,现在需要数据恢复。
针对本案例,我们来看看具体如何操作,进行数据库记录恢复。
1.打开DBF6300数据库取证分析系统,选择文件模式,扫描需要恢复的数据库文件。
2. 查看各个表的记录恢复结果。
3. 恢复所有记录。
一般而言,记录恢复操作就到此结束,但是导出的数据往往不具备关联性,不方便数据分析,我们可以尝试将这些数据还原到收银软件的数据库中,从收银软件来查看数据统计。
4. 使用语句清空数据库记录(部分数据库表存在条件约束限制,无法清空)。
(1)执行语句select ‘delete ‘ name FROM SYSOBJECTS WHERE TYPE = ‘U’ ,查询结果会针对这个数据库,生成删除这个数据库所有表的语句。
(2)将查询结果复制到查询分析器执行,清空数据库记录。
5. 将步骤3导出的数据,导入这个空的数据库内(由于格式等原因,导入会报错)。
6. 安装收银软件,配置数据库。
7.登录软件,查看数据。
(1)从数据库中找到用户名和密码(有的数据库表,密码会加密存放)。
(2)查看营业报表。
至此,本次数据库记录的删除恢复就已经完成,并且导入到原始数据库内,查看明细以及数据统计也非常方便。
四、注意事项
1.现场数据库固定的时候,需注意数据库是否存放在本电脑上,可以通过以下三个步骤来查找:
(1)查看程序列表,看看是否安装数据库服务。
(2)由于数据库文件并不是都保存在默认安装目录,可以根据扩展名全盘搜索,并注意数据库文件的修改时间。
2. 需要先停止数据库服务,再固定数据库文件。
(1)若未停止数据库服务,复制会报错,无法完成数据库文件固定。
(2)若未停止数据库服务,通过工具强行拷贝数据库文件,则可能导致数据库不完整,无法附加分析。
五、案例练习
请按以下要求恢复数据库中的数据:
1、恢复表t_rm_payflow的记录,统计付款(字段sale_amount)总额。
2、恢复表t_rm_saleflow的记录,按照商品(字段item_no)汇总销售金额。
Sql数据库附加错误MDF文件无法复制或移动怎么办?【利用SQL注入漏洞获取Windows企业管理级别权限】【巧用日志文件】恢复SQL Server数据库数据【分享】SQL Server数据库逻辑备份文件分析经验【step by step】MySQL数据库取证【技术实战】如何通过日志备份恢复SQL Server数据库删除数据?