Part1:谁干的?

做DBA的经常会遇到,一些表被误操作了,被truncate、被delete、甚至被drop。引起这方面的原因大多数都是因为人为+权限问题导致的。一些公共账户,例如ceshi账户,所有的人都可以进行操作,由这些公共账户引起的误操作,你在办公室大喊:谁把我的表删了?8成不会有人回应你。

审计日志功能,该技术主要在MariaDB10.0/10.1和Percona 5.6版本里实现。该功能在MySQL5.6/5.7企业版里也支持。本文主要介绍和演示MariaDB10.1中如何开启审计日志,帮你揪出内个干坏事儿的小子~

 

Part2:构建环境

本文中,我们采用的MariaDB版本为10.1.16,当然用其他版本的MariaDB亦可,如何安装MariaDB数据库环境本文不做赘述,如果需要的可移步:

http://suifu.blog.51cto.com/9167728/1830575

下面介绍在MariaDB10.1.16中,安装审计Audit Plugin插件的方法

在MariaDB数据库中执行如下命令:

NSTALL PLUGIN server_audit SONAME 'server_audit.so';

具体代码如下图所示。

Warning:警告

这里值得注意的是,server_audit.so名字不是随意取的,因为它会读/usr/local/mariadb/lib/plugin目录下的文件,如果说将其给明为mariadb-audit.so,就会抛出如下错误,因为plugin目录下没有该文件。

Part2:参数解释

server_audit_events='CONNECT,QUERY,TABLE'表示惠济路链接进来的IP、用户名和表的DML/DDL/DCL操作。

server_audit_logging=ON 表示开启审计日志服务。

server_audit_excl_users=helei 表示只记录helei用户的所有操作。

server_audit_file_rotate_size=1G 表示超过定义的1GB,日志会自动轮训。

server_audit_file_path=server_audit.log 表示审计日志的路径。

更多相关参数可以利用show variables like 'server_audit%';来查看,如下图所示。

Part3:开启相关参数

server_audit_events、server_audit_logging等参数均为全局动态参数,可以直接在数据库更改,命令如下:

set global server_audit_events='CONNECT,QUERY,TABLE';

set global server_audit_logging=ON;

Part4:检查效果

在开启相关参数后,无需重启数据库,可直接看到相关的操作已经被记录到server_audit.log ,如下图所示。

——总结——

自从有了审计功能,妈妈再也不用担心我找不到“坏人”啦。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。

MariaDB日志审计 帮你揪出内个干坏事儿的小子的更多相关文章

  1. MariaDB开启日志审计功能

    对于MySQL.Percona.MariaDB三家都有自己的审计插件,但是MySQL的审计插件是只有企业版才有的,同时也有很多第三方的的MySQL的审计插件,而Percona和MariaDB都是GPL ...

  2. 揪出Android流氓软件

    揪出Android流氓软件 http://www.icpcw.com/Smartphone/Android/Android/1471/147142_all.htm http://www.william ...

  3. 【经验分享】用adb揪出安卓APP弹窗广告的原形

    背景 相信不少安卓用户中过影子弹窗广告的困扰,这种推广APP本体在后台运行,而且可以在其他APP上弹出覆盖广告,一不小心就会误操作,点击广告或者下载APP,着实令人恶心. 以前的广告软件只在通知栏会推 ...

  4. python的paramiko源码修改了一下,写了个操作命令的日志审计 bug修改

    python的paramiko源码修改了一下,写了个操作命令的日志审计,但是记录的日志中也将backspace删除键记录成^H这个了,于是改了一下代码,用字符串的特性. 字符串具有列表的特性 > ...

  5. 揪出“凶手”——实战WinDbg分析电脑蓝屏原因

    http://www.appinn.com/blue-screen-search-code/ 蓝屏代码查询器 – 找出蓝屏的元凶 11 文章标签: windows / 系统 / 蓝屏. 蓝屏代码查询器 ...

  6. 图解ARP协议(三)ARP防御篇-如何揪出“内鬼”并“优雅的还手”

    一.ARP防御概述 通过之前的文章,我们已经了解了ARP攻击的危害,黑客采用ARP软件进行扫描并发送欺骗应答,同处一个局域网的普通用户就可能遭受断网攻击.流量被限.账号被窃的危险.由于攻击门槛非常低, ...

  7. 转载:揪出MySQL磁盘消耗迅猛的真凶

    揪出MySQL磁盘消耗迅猛的真凶 背景 Part1:写在最前 当一张单表10亿数据量的表放在你面前,你将面临着什么? Part2:背景介绍 为了提升数据库资源利用率,一个实例中,在不互相影响,保证业务 ...

  8. [置顶] kubernetes1.7新特性:日志审计变化

    背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户.管理员和系统中各个组件的日志信息. Kubernetes日志审计是Kube-apiserver组件的一部分功 ...

  9. Web安全开发指南--异常错误处理与日志审计

    1.异常错误处理与日志审计 5.1.日志审计系统安全规则 1 日志系统能够记录特定事件的执行结果(比如 成功或失败). 确保日志系统包含如下重要日志信息: 1.  日志发生的时间: 2.  事件的严重 ...

随机推荐

  1. nginx、fastCGI、php-fpm关系梳理

    前言: Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx ...

  2. eclipse中JPA插件的安装与使用

    说明 上周实验室学习了数据库设计相关的内容,其中涉及到将数据库实体化的问题,JPA是一个很好的实现工具,便开始着手于JPA的学习.因为JPA涉及到的知识还是挺多的,需要学习许多新的知识,所以对于JPA ...

  3. eclipse点击空白处自动打开项目

    如图 选择上面的 Link with Editor 即可

  4. MVC+EF 入门教程(三)

    一.前言 上一节,我们将了生成数据库,那么这张我就将操作设计库. 二.在 Aplication 定义服务 在 Application 中添加文件夹(Blog)和 操作类(BlogServer).实例如 ...

  5. CenOS 6.5下 mysql自动备份

      1.mysql备份命令是mysqldump,自动执行可以用cron,但是文件名需要带有时间标志,shell处理起来很麻烦,我就选择了python来解决 2.文件名用time模块来解决,执行系统命令 ...

  6. 《C++程序设计语言(英文第四版)》【PDF】下载

    <C++程序设计语言(英文第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382177 内容简介 本书是C++领域经典的参 ...

  7. C#创建对象时各种初始化属性、字段的方式的执行顺序

    创建对象代码如下: new FilterInfo(Student.CreateTimeProperty,"朱七",Express.Equals,Relationship.Or) { ...

  8. ArcGIS API for JavaScript 4.2学习笔记[21] 对3D场景上的3D要素进行点击查询【Query类学习】

    有人问我怎么这个系列没有写自己做的东西呢? 大哥大姐,这是"学习笔记"啊!当然主要以解读和笔记为主咯. 也有人找我要实例代码(不是示例),我表示AJS尚未成熟,现在数据编辑功能才简 ...

  9. git正确的删除远程仓库的文件并用.gitignore忽略提交此文件

    我向远程仓库提交了如下文件src/ pom.xml target/ WebContent/,发现没必要提交target目录. 于是做了如下操作: git rm -r --cached target g ...

  10. [知了堂学习笔记]_用JS制作《飞机大作战》游戏_第4讲(创建敌方飞机、敌方飞机发射子弹、玩家子弹击中敌方小飞机,小飞机死亡)

    一.创建敌方飞机 1.思考创建思路: 创建敌方飞机思路与创建玩家飞机思路一样: (1)思考敌方飞机具备什么属性: 敌方飞机的图片.坐标.飞行速度.状态(是否被击中) 设置小飞机被击中时消失时间.飞机可 ...