取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析
天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。
SysTools SQL Log Analyzer 是 Systools 取证工具系列之一,用于调查 SQL Server 事务日志,以对数据库篡改进行取证分析。
什么是 SQL Server 事务日志?
在深入研究 SQL 事务日志取证之前,让我们先看看 T-log 文件的真实情况。就像许多其他 RDBMS 一样,MS SQL Server 也遵循“预写日志记录”方法。这意味着所有事务在提交之前都写入日志文件,并保存对数据库所做的所有更改的记录。在 SQL 取证工作之前,用户需要知道,从逻辑上讲,事务日志被分类为几个较小的部分,称为 VLF 或虚拟日志文件。
每个 SQL 数据库都使用多个 VLF,每个 VLF 的最小大小必须为 512 KB。日志中虚拟文件的大小和数量会随着日志大小的变化而变化。当一个日志文件填充了事务详细信息时,事务将写入下一个可用文件。在这里,我们将仅对这些文件进行 SQL Server 取证。MDF(主数据库文件)不包括在这里。
基本上,日志文件以循环形式表示,因此,如果一个文件达到其最大限制,则它从起点重新开始。SQL Server 使用截断过程来标记文件末尾或日志文件的任何未使用部分,以便可以使用它来存储信息。如果知道正确的技术,用户不难执行 SQL 事务日志取证。
- 支持事务复制:日志读取器代理非常仔细地监视数据库事务日志,以便进行事务复制。
- 恢复到故障点:数据库可以恢复到确切的故障点,它恢复了数据库的完整备份和数据库的差异备份。
- 恢复单个交易:在数据库引擎发生故障的情况下,日志记录有助于回滚在未完成事务期间完成的单个事务和修改。
- 恢复未完成的事务:由于 SQL Server 中的故障,某些事务未完成。因此,当 SQL Server 启动时,可以回滚这些事务和修改。这样做是为了确保数据库的完整性。
- 数据库镜像和日志传送:在日志传送中,主数据库的活动日志文件由主服务器发送到多个位置。在数据库镜像中,主体服务器用于将所有记录立即发送到镜像服务器。
取证分析工作原理 SQL Server 中的日志
每当 SQL Server 被告知在结构化查询语言语法编写的查询的帮助下执行某些操作时,SQL Server 的内部查询优化器都会检查查询、执行查询并从磁盘中检索所需的信息。在检索查询的情况下,数据库将通过网络流式传输到请求客户端。但是,使用修改查询,它会修改内存中的数据页。用户必须注意这一点,以便仔细执行 SQL Server 取证。
它不会将这些修改直接写入磁盘。因此,SQL Server 的作用是将逻辑事务条目写入文件扩展名为 .ldf 的事务日志文件中,所有事务记录都将在其中执行。 最终,几秒钟后,SQL Server 决定将修改后的页面写出到磁盘。执行此操作时,它会导航回事务日志并“检查”事务,该事务进行了修改。
这意味着更改已完成并已写入磁盘。因此,在执行 SQL Server 恢复时,它会直接进入事务日志搜索未完成的事务或尚未取消的事务. SQL Server 会从日志中读取这些事务,然后重新执行它们并快速将受影响的数据库页写入磁盘。在 SQL 事务日志取证中,这是需要了解的一个关键方面。
分析 SQL 日志文件的默认位置
打开 SQL Server Management Studio,然后右键单击数据库。选择“属性”
在新提示的窗口中,单击“文件”菜单,它将显示数据库文件的保存位置以及保存的名称。
事务日志的手动取证调查:使用 fn_dblog() 函数
fn_dblog() 函数也称为 DBCC 命令,是 MS SQL Server 的各种未记录函数之一。它可以查看当前数据库的事务日志文件的活动部分中的事务日志记录。fn_dblog() 需要传递以下参数:
- 起始日志序列号 (LSN)。用户指定 NULL时,将返回从日志开头开始的所有内容。
- 结束日志序列号。用户指定 NULL时,将返回直到日志末尾的所有内容。
fn_dblog() 相当简单,下面是使用此函数从事务日志中获取信息的方法:
SELECT * FROM fn_dblog(NULL, NULL)
现在,fn_dblog 将返回所有交易详细信息,选择要分析的交易。事务结果包括当前 LSN、已执行操作、事务 ID、父事务 ID、时间、事务名称和事务 SID。
事务日志的自动化取证调查:SQL Log Analyzer Tool
SQL Log Analyzer Tool 是一款专业且功能强大的实用程序,用于以安全的方式读取和分析 SQL 日志文件的事务。它对 SQL 日志文件事务进行取证分析并执行 LDF 文件恢复。
此外,该工具还显示 LDF 文件中执行的所有活动的预览,以及交易名称,登录名,时间,表名和查询。有了这个,人们可以阅读和分析所有事务,如插入、删除、更新等。该软件支持 Datetime2、datetimeoffset、sql_varient、geometry 和 geography 数据类型。
它能够快速扫描、查看 LDF 文件并自动定位关联的 Master 数据库文件。该工具允许从 Live 数据库中获取和显示记录。如果数据库处于简单恢复模式,则用户可以恢复已删除的记录。该工具最好的方面是它可以在联机和离线 SQL 数据库环境中运行,并支持 SQL Server
2017/2016/2014/2012/2008/2005 的 .ldf 文件。简而言之,它可以非常轻松地处理 SQL Server 取证任务。
使用 SysTools SQL Log Analyzer 取证分析 SQL Server 事务日志的步骤
1. 启动 SysTools SQL Log Analyzer 工具,然后单击“打开”以添加 .ldf 文件。
2.该工具提供了两个选项来添加文件:在线数据库选项和离线数据库选项。如果选择了在线数据库选项,则可以通过单击下拉列表来选择服务器名称。选择身份验证模式。点击下拉箭头选择数据库,然后单击“确定”。
3.软件将开始扫描 LDF 文件,扫描成功完成后将弹出向导。点击 OK 按钮。
4.工具显示交易预览。选择所需的表以预览和分析相应的操作日志条目。它根据登录名、时间、表名和事务名对交易进行排序。单击“导出”按钮。
5.您可以应用导出过滤器、日期过滤器以导出特定日期范围的交易记录。可以选择将数据库导出为 SQL 数据库或 csv。单击“导出”以保存记录。
结论
以上我们学习了 SQL 事务日志取证策略。该文章包含了如何对 SQL Server 事务日志进行取证调查的完整信息,包括其位置和工作过程。其中介绍了两种不同的方法来检查 SQL Server 事务日志的详细信息。
fn_dblog 功能有助于检测所有已执行的交易。但是,手动方法相对复杂、冗长且耗时,SysTools SQL Log Analyzer 专业解决方案则是获得足够结果的最安全的解决方案之一。
相关文章:

取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析
天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。 SysTools SQL Log Analyzer 是 Systools 取证工具系列之一,用于调查 SQL Server 事务日志,以对数据库篡改进行取证分析。 什么是 SQL Server 事务日志? 在深入研究 SQL 事务日…...

蓝牙耳机怎么连接电脑?轻松实现无线连接
蓝牙耳机已经成为许多人生活中不可或缺的一部分,不仅可以方便地连接手机,还能轻松连接电脑,让我们在工作和娱乐时享受无线的自由。然而,对于一些用户来说,将蓝牙耳机与电脑连接可能会遇到一些问题。本文将介绍蓝牙耳机…...

4.音视频 AAC SSAASS
目录 AAC 1.什么是ADIF和ADTS? 2.ADTS的数据结构是怎样的? SSA/ASS 1.SSA/ASS的基本结构 AAC AAC(Advanced Audio Coding,高级音频编码)是一种声音数据的文件压缩格式。AAC分为ADIF和ADTS两种文件格式。 1.什么是ADIF和ADTSÿ…...

每日5题Day24 - LeetCode 116 - 120
每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) /* // Definition for a Node. class Node {public int val;public Node left;…...

在笔记本电脑上使用 LLMs 的 5 种方法
在网上使用 ChatGPT 很简单,只需有网络连接和好的浏览器即可。但这样做可能会泄露您的隐私和数据。OpenAI 存储了您的提示和其他元数据以重新训练模型。对于一些人来说可能不成问题,但注重隐私的人可能更愿意在本地使用这些模型,不受外部跟踪…...

Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览)
一, 什么是MMU? MMU(Memory Management Unit 内存管理单元),即内存管理单元,是计算机硬件中的一个重要组件,主要负责处理中央处理器(CPU)的内存访问请求。 其工作原理如下: 当程序发出内存访问请求,包括读取或写入操作以及逻辑地址(虚拟地址)。然后,MMU根据页表…...

Intellij IDEA中怎么配置Maven?
在IntelliJ IDEA中配置Maven非常简单,以下是详细步骤: 步骤1:安装Maven 首先确保你的计算机上已经安装了Maven。如果没有安装,你可以从Apache Maven官网下载并安装:https://maven.apache.org/download.cgi 步骤2&am…...

操作系统-内存管理
虚拟内存 操作系统会提供⼀种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。 两个概念: 程序所使⽤的内存地址叫做虚拟内存地址(Virtual Memory Address)实际存在硬件⾥⾯的空间地址叫物理内存地址(Physi…...

C++中的解释器模式
目录 解释器模式(Interpreter Pattern) 实际应用 算术表达式解释器 布尔表达式解释器 总结 解释器模式(Interpreter Pattern) 解释器模式是一种行为设计模式,它定义了一种语言的文法表示,并使用解释器…...

用 C 语言实现求补码的运算
缘起 前两天程序中需要求一堆参数的补码,一时犯懒,想从CSDN上搜一个勉强能用的代码借鉴一下,结果几乎没有搜到一个靠谱的!这种求补码的操作,用脚趾头想想也应该知道要用C或者C的位运算来实现呀。结果搜到的一些实现方…...

python下载文件
import urllib.request url "http://****/storage/x4MigEhU6BGAuTqjrRfIBky0S2aMmkyGl4UzTqUb.png"#下载地址 path "ddad.png"#保存路径,保存项目路径 urllib.request.urlretrieve(url, path)...

JMU 数科 数据库与数据仓库期末总结(1)
本章根据老师给出的知识点作进一步相对生动一点的解释。 不保证完全正确。 先给出总的知识点,再给出生动解释。 知识点 数据模型通常由三部分组成:数据结构、数据操作和完整性约束。关系模式中主码的取值必须唯一且非空,这是实体完整性的…...

前端问题整理
Vue vue mvvm(Model-View-ViewModel)架构模式原理 Model 是数据层,即 vue 实例中的数据View 是视图层, 即 domViewModel,即连接Model和Vue的中间层,Vue实例就是ViewModelViewModel 负责将 Model 的变化反映…...

【实践功能记录6】表格列悬浮展示tooltip信息
需求描述: 鼠标悬浮在表格的IP字段上时,使用tooltip展示IP信息,如图: 1.封装根据IP展示信息的组件 请求接口获取IP信息,注意请求接口时防抖 <!-- 根据IP展示资产信息 --> <template><div><el-…...

AI论文速读 | 2024[SIGIR]基于大语言模型的下一个兴趣点推荐
论文标题:Large Language Models for Next Point-of-Interest Recommendation 作者:Peibo Li ; Maarten de Rijke ; Hao Xue (薛昊); Shuang Ao ; Yang Song ; Flora D. Salim 机构:新南威尔士大学(UNSW),…...

Rust 实战丨通过实现 json! 掌握声明宏
在 Rust 编程语言中,宏是一种强大的工具,可以用于在编译时生成代码。json! 是一个在 Rust 中广泛使用的宏,它允许我们在 Rust 代码中方便地创建 JSON 数据。 声明宏(declarative macros)是 Rust 中的一种宏࿰…...

vue+elementUI实现在表格中添加输入框并校验的功能
背景: vue2elmui 需求: 需要在一个table中添加若干个输入框,并且在提交时需要添加校验 思路: 当需要校验的时候可以考虑添加form表单来触发校验,因此需要在table外面套一层form表单,表单的属性就是ref…...

为国产加油:“缺芯少屏”暂缓,另一领域,也要加把劲
说起咱中国之前的“缺芯少屏”,真的是让人挺闹心的。 不过呢,为了改变这个状况,咱们的工程师们可是费了不少劲儿,辛辛苦苦努力了数十年。现在好了,咱们也迎来了柔性屏的时代。 柔性屏 说起来,在触摸屏或者…...

【Qnx】Qnx coredump解析
Qnx coredump解析 coredump文件 Qnx运行的程序崩溃时,会生成coredump文件。 默认情况下这些文件默认会保存在/var/log/*.core 文件中。 解析coredump文件,可以帮忙加快分析程序崩溃的原因,比如了解崩溃的堆栈。 通常可以使用gdb和coreinfo…...

超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳…...

RocketMQ在Centos7系统上单机部署
最近因为一些信创问题,要将RabbitMQ替换为RocketMQ,因此在此分享一些RocketMQ在Centos7系统上单机部署相关过程。 优缺点 RocketMQ的优点: 性能优越:RocketMQ在处理大量消息时,性能优于RabbitMQ。当面临每秒数万到数…...

Vue37-非单文件组件
一、组件的两种编写形式: 非单文件组件;单文件组件。 二、创建一个组件 2-1、组件中的el 组件中不写el,不说为谁服务。 2-2、组件中的data 因为对象形式,多处复用的话,有引用关系,改一处,另一…...

CSS实现经典打字小游戏《生死时速》
🌻 前言 CSS 中有这样一个模块:Motion Path 运动模块,它可以使元素按照自定义的路径进行移动。本文将为你讲解这个模块属性的使用,并且利用它实现我小时候电脑课经常玩的一个打字游戏:金山打字的《生死时速》。 &…...

推箱子-小游戏
学习目标: 巩固Java基础,数据类型、二维数组、条件语句等; 效果展示:...

AI数字人的开源解决方案
目前,国内外已经涌现出一些优秀的数字人开源解决方案,这些解决方案为开发者提供了构建数字人应用的工具和基础设施。以下是一些比较知名的数字人开源解决方案。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1…...

java写一个验证码
生成验证码 内容:可以是小写字母,也可以是大写字母,还可以是数字 规则 长度为5 内容中是四位字母,1位数字。 其中数字只有1位,但是可以出现在任意的位置。 package User;import java.util.ArrayList; import jav…...

【星海随笔】ELK优化
ELS 再遇到大的日志文件的时候不会自动进行清理的,我们可以通过 logrotate 转储工具进行操作。 该命令是基于 Cron 实现,由系统执行,当然也可以手动进行执行例如 logrotate -f configfile# more /etc/logrotate.confweekly // 默认每一周执行一次rotate轮转工作 r…...

SQL Auto Increment
SQL Auto Increment 在关系型数据库中,自动增量(Auto Increment)是一个常见且实用的特性。它允许数据库自动为表中插入的新行分配唯一的标识符,通常用于主键字段。本文将深入探讨SQL中的自动增量功能,包括其工作原理、…...

网络安全练气篇——PHP编程语言基础
目录 PHP基础 一、PHP简介与环境搭建 什么是PHP? PHP环境安装 代码编辑选择 二、基本语法 PHP基本语法操作 PHP变量与输出 啥是常量? PHP注释 PHP单引号双引号声明 三、PHP表单 PHP表单 四、登录界面搭建与讲解 构建登陆页面 登陆页面端 服务器端…...

LabVIEW程序内存泄漏分析与解决方案
维护他人编写的LabVIEW程序时,若发现程序运行时间越长,占用内存越大直至崩溃,通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因,包括数组和字符串处理、未释放的资源、循环中的对象创建等,并提供具体的解决方…...