首页 > 数据库 >记一次mysql数据被恶意篡改的恢复

记一次mysql数据被恶意篡改的恢复

时间:2022-09-18 15:22:56浏览次数:99  
标签:binlog 记录 -- sql 恶意 mysql 篡改

客户员工与客户公司产生了矛盾离职,离职的时候系统账号权限还未收回,此员工使用账号登录系统之后恶意篡改用户数据被发现。
系统本身做了mysql主从同步,但是因为是恶意篡改数据,对于程序和数据库而言其属于合理的操作范围,主从同步也会正常同步
目前系统有日志记录功能,不过日志记录只记录了用户修改时传入的参数,并未记录修改前的数据库记录(此处后续已加强,关键数据操作时日志要记录修改前的)

重要提示:上述行为是违法的,触发刑事责任,这个员工可能是个法盲,后续估计面临6个月以上的刑期。我看刑,有判头

因为知道mysql有binlog,因此第一时间去服务器查看binlog文件,还好还没过期(系统设置的binlog保留天数是最近7天),下面开始数据提取之路:

第一步复制出来相应日期的binlog文件到某个单独目录(也可以在binlog目录操作,不过不建议那样做)

cp mysql-bin.000078 /data/backup

第二步将binlog内容转为肉眼可见的SQL命令文件

因为之前我们设置的binlog记录模式是mixed,mixed模式是row模式和statement模式的混合体,所以提取的时候需要对命令做一个加强,提取binlog内容使用的是mysql自带的 mysqlbinlog命令

mysqlbinlog --no-defaults --base64-output=DECODE-ROWS --start-datetime='2022-09-16 10:20:00' -v  mysql-bin.000078 > sql78_tmp.log

参数说明:

  1. --no-defaults 按照默认编码
  2. --base64-output=DECODE-ROWS 显示row模式的sql文,不加这个提取的sql文不完整
  3. --start-datetime 从某个时间段开始进行提取,当然也可以指定一个区间范围,可以增加--end-datetime
  4. -v 显示statement模式的sql文
  5. 将解析的内容输出到后续的文件中

执行完毕之后查看sql78_tmp.log即可看到解析之后的信息,然后根据关键字去搜索对应sql文执行记录即可。

标签:binlog,记录,--,sql,恶意,mysql,篡改
From: https://www.cnblogs.com/bcde/p/16704844.html

相关文章

  • SpringBoot校园博客系统 博客管理系统 开源博客系统 个人博客系统Java Vue MySQL数据
    ......
  • MySQL数据备份 mysqldump 详解
    MySQL数据备份流程1打开cmd窗口通过命令进行数据备份与恢复;需要在Windows的命令行窗口中进行;l 开始菜单,在运行中输入cmd回车;l 或者win+R,然后输入cmd回车,即......
  • mysql基础命令
    MySQL数据库入门——常用基础命令  1、使用帮助信息  登陆数据库就不介绍了哦  比如说想做创建的数据库的操作,不知道命令,就可以查看帮助信息 mysql>......
  • MySQL常见字符串截取小结
    MySQL截取字符串常见函数有:left()、right()、substring()、substring_index()。从左侧截取字符串用法:left(str,length)描述:left(被截取字符串,截取长度)SELECTLEFT('......
  • 第二十一章 MySQL数据库优化
    一、数据硬件优化(选型)1.数据库选择1.真实的硬件物理机,虚拟化,搭建数据库2.云服务器ECS,自己搭建数据库3.云数据库(RDS,DRDS)2.数据库类型1.OLTP 在线事务处理系统,支持大......
  • MySQL EXPLAIN详解
    Explain简介本文主要讲述如何通过explain命令获取select语句的执行计划,通过explain我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引......
  • 关于MySQL的lock wait timeout exceeded解决方案
    copy自:关于MySQL的lockwaittimeoutexceeded解决方案一、关于MySQL出现lockwaittimeoutexceeded;tryrestartingtransaction的解决方案。我们可以通过到informa......
  • 第十七章 MySQL的各种主从
    一、延时从库1.已经有主从配置延时从库1.停止主从 mysql>stopslave;2.设置延时从库 mysql>changemastertomaster_delay=180; 3.开启主从 mysql>startslav......
  • CentOS安装MySQL5.7
    https://blog.csdn.net/m0_55730189/article/details/126716163MySQL::DownloadMySQLCommunityServer下载MySQLhttps://blog.csdn.net/m0_55730189/article/detail......
  • Navicat 连接 MySQL8 出现 2059 错误的解决方案
    叙述工作中一直使用的是MySql5.6版本,想着MySQL8已经发布好几年了,本地安装个测试数据库看看,但是安装完成后,用Navicat连接,一直报2059错误,真是奇了怪了。 排查晚上查了......