mariadb操作审计

mariadb可以启用审计插件来对数据库的各种操作进行审计,以防运维背锅!

启用MariaDB的审计插件,并调整相关参数

MariaDB [(none)]> show variables like ‘%audit%‘;
Empty set (0.02 sec)

安装MariaDB审计插件

MariaDB [(none)]> INSTALL PLUGIN server_audit SONAME ‘server_audit‘;
Query OK, 0 rows affected (0.41 sec)

查看安装审计插件后的变量

MariaDB [(none)]> show variables like ‘%audit%‘;
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| server_audit_events           |                       |
| server_audit_excl_users       |                       |
| server_audit_file_path        | server_audit.log      |
| server_audit_file_rotate_now  | OFF                   |
| server_audit_file_rotate_size | 1000000               |
| server_audit_file_rotations   | 9                     |
| server_audit_incl_users       |                       |
| server_audit_loc_info         |                       |
| server_audit_logging          | OFF                   |
| server_audit_mode             | 0                     |
| server_audit_output_type      | file                  |
| server_audit_query_log_limit  | 1024                  |
| server_audit_syslog_facility  | LOG_USER              |
| server_audit_syslog_ident     | mysql-server_auditing |
| server_audit_syslog_info      |                       |
| server_audit_syslog_priority  | LOG_INFO              |

设置相关参数及说明:

1.设置记录的事件

MariaDB [(none)]> set global server_audit_events=‘connect,query,table‘;
Query OK, 0 rows affected (0.00 sec)

注:connect,query,table可满足我们所有审计需求

相关事件说明可参考:https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/

2.指定不审计某些用户的操作

MariaDB [(none)]> set global server_audit_excl_users=‘liuwei‘;
Query OK, 0 rows affected (0.01 sec)

3.审计日志存放的位置

server_audit_file_path        | server_audit.log

4.设置日志轮转

MariaDB [(none)]> set global server_audit_file_rotate_now=on;
Query OK, 0 rows affected (0.00 sec)

5.设置审计日志的大小

MariaDB [(none)]> set global server_audit_file_rotate_size=1024*1024*1024;
Query OK, 0 rows affected (0.03 sec)

6.开启审计日志

MariaDB [(none)]> set global server_audit_logging=on;
Query OK, 0 rows affected (0.00 sec)

7.设置日志可以轮转的个数

server_audit_file_rotations   | 9

查看设置之后的参数:

MariaDB [(none)]> show variables like ‘%audit%‘;
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| server_audit_events           | QUERY,TABLE           |
| server_audit_excl_users       | liuwei                |
| server_audit_file_path        | server_audit.log      |
| server_audit_file_rotate_now  | OFF                   |
| server_audit_file_rotate_size | 1073741824            |
| server_audit_file_rotations   | 9                     |
| server_audit_incl_users       |                       |
| server_audit_loc_info         |                       |
| server_audit_logging          | ON                    |
| server_audit_mode             | 0                     |
| server_audit_output_type      | file                  |
| server_audit_query_log_limit  | 1024                  |
| server_audit_syslog_facility  | LOG_USER              |
| server_audit_syslog_ident     | mysql-server_auditing |
| server_audit_syslog_info      |                       |
| server_audit_syslog_priority  | LOG_INFO              |
+-------------------------------+-----------------------+

查看审计日志是否进行记录:可以记录增删改查所有操作

[[email protected] mysql]# cat server_audit.log 
20160705 16:25:24,test2,root,localhost,9,2544,QUERY,,‘set global server_audit_logging=on‘,0
20160705 16:25:38,test2,root,localhost,9,2545,QUERY,,‘show variables like \‘%audit%\‘‘,0
20160705 16:28:06,test2,root,localhost,9,2546,QUERY,,‘SELECT DATABASE()‘,0
20160705 16:28:10,test2,root,localhost,9,2548,QUERY,,‘show databases‘,0
20160705 16:28:44,test2,root,localhost,9,2549,QUERY,,‘create database v1‘,0
[[email protected] mysql]# tailf server_audit.log
20160705 16:25:24,test2,root,localhost,9,2544,QUERY,,‘set global server_audit_logging=on‘,0
20160705 16:25:38,test2,root,localhost,9,2545,QUERY,,‘show variables like \‘%audit%\‘‘,0
20160705 16:28:06,test2,root,localhost,9,2546,QUERY,,‘SELECT DATABASE()‘,0
20160705 16:28:10,test2,root,localhost,9,2548,QUERY,,‘show databases‘,0
20160705 16:28:44,test2,root,localhost,9,2549,QUERY,,‘create database v1‘,0
20160705 16:31:20,test2,root,localhost,9,2552,QUERY,,‘set global server_audit_events=\‘connect,query,table\‘‘,0
20160705 16:31:30,test2,root,localhost,9,2553,QUERY,,‘show variables like \‘%audit%\‘‘,0
20160705 16:31:35,test2,root,localhost,9,0,DISCONNECT,,,0
20160705 16:31:51,test2,root,localhost,24,0,CONNECT,,,0
20160705 16:31:51,test2,root,localhost,24,2555,QUERY,,‘select @@version_comment limit 1‘,0
20160705 16:33:44,test2,root,192.168.10.215,25,0,FAILED_CONNECT,,,1045
20160705 16:33:44,test2,root,192.168.10.215,25,0,DISCONNECT,,,0
20160705 16:33:53,test2,liuwei,192.168.10.215,26,0,CONNECT,,,0
20160705 16:35:21,test2,root,localhost,24,2561,QUERY,,‘show variables like \‘%audit%\‘‘,0
20160705 16:40:22,test2,root,localhost,24,2563,WRITE,mysql,user,
20160705 16:40:22,test2,root,localhost,24,2563,WRITE,mysql,db,
20160705 16:40:22,test2,root,localhost,24,2563,QUERY,mysql,‘grant all on *.* to [email protected]\‘%\‘ identified by *****‘,0

在配置文件中配置审计参数,因为global重启后就失效:

[mysqld]

server_audit_events=‘CONNECT,QUERY,TABLE‘

server_audit_logging=on

server_audit_file_rotate_size=200000

server_audit_file_rotations=10

server_audit_excl_users=‘liuwei‘

重启生效

时间: 2024-10-05 10:21:28

mariadb操作审计的相关文章

mysql 5.7 操作审计

mysql 5.7 操作审计 注:percona,mcafee,mariadb都有提供审计插件 1.下载 #wget https://downloads.mariadb.org/interstitial/mariadb-10.1.21/bintar-linux-x86_64/mariadb-10.1.21-linux-x86_64.tar.gz 2.解压 #tar -xf /mariadb-10.1.21-linux-x86_64.tar.gz,找到server_audit.so(一般在/lib

MySQL之MariaDB启用审计插件

对于MySQL Percona MariaDB三家都有自己的审计插件,但是呢,MySQL的审计插件是只有企业版才有的,同时也有很多第三方的的MySQL的审计插件,而Percona和MariaDB都是GPL的审计插件 首先看一下mariaDB 的审计插件 [[email protected]_Aolens_01 /usr/local/mysql]# mysql -uroot -p2aa263a42dd248 Welcome to the MariaDB monitor.  Commands end

MariaDB日志审计 帮你揪出内个干坏事儿的小子

Part1:谁干的? 做DBA的经常会遇到,一些表被误操作了,被truncate.被delete.甚至被drop.引起这方面的原因大多数都是因为人为+权限问题导致的.一些公共账户,例如ceshi账户,所有的人都可以进行操作,由这些公共账户引起的误操作,你在办公室大喊:谁把我的表删了?8成不会有人回应你. 审计日志功能,该技术主要在MariaDB10.0/10.1和Percona 5.6版本里实现.该功能在MySQL5.6/5.7企业版里也支持.本文主要介绍和演示MariaDB10.1中如何开启审

linux对普通用户操作审计

前言: 最近一直在用python开发审计系统,今天无意之间找到了一个特别好用的小工具,本人盛世欢喜,特推荐给大家.使用script和scriptreplay 这两个命令记录用户的所有操作,并提供录像功能.好了废话不多说了,马上开始配置吧,其实很简单. 实践: 操作系统:Centos6.5 目的:记录普通用户的所有操作记录 1.在/etc/profile文件末尾添加如下内容 [[email protected] ~]# tail -5  /etc/profile if [ $UID -ge 500

运维堡垒机—如何解决企业运维操作审计问题?

运维审计作为运维堡垒机的功能之一,是保证企业数据安全不可或缺的重要运维工作内容,运维堡垒机是指在某一个特定的网络环境下,为了保障网络和数据不受来自内部合法用户的不合规操作带来系统损坏.数据泄露,从而实时收集和监控网络环境中每一个组成部分的系统状态.安全事件.网络活动,以达到集中报警,并记录.分析.处理的一种技术手段.那么运维堡垒机如何保障企业运维安全呢? 运维操作无法审计导致数据安全无法得到保障 每个系统独立运行.维护和管理,因此每个系统的审计也是相互独立的.所以需每个主机系统分别进行审计,当安

Centos下MariaDB操作

MariaDB简介 MariaDB是mysql数据库的一个分支,操作几乎和mysql一样 MariaDB安装.启动.停止 # 安装 yum -y install mariadb mariadb-server # 启动 systemctl start mariadb # 重启 systemctl restart mariadb # 停止 systemctl stop mariadb # 开机启动 systemctl enable mariadb # 取消开机启动 systemctl disable

python学习之数据库mariadb操作

数据库简介数据库分类关系型数据库:指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织.主流的关系型数据库有:Oracle.Microsoft SQL Server.MySQL.PostgreSQL,SQLite.MariaDB(MySQL的一个分支)Microsoft Access.SAP.非关系型数据库:指非关系型的,分布式的,以键值对存储且结构不固定,可以减少一些时间和空间的开销.非关系型数据库都是针对某些特定的

增加操作审计到本地

环境:客户端和服务端都需要安装rsyslog服务   跳板机-rsyslogserver端 /etc/rsyslog.d/server.conf $ModLoad imtcp $InputTCPServerRun 514 /etc/rsyslog.conf local4.*                     /var/log/history.log sudo service rsyslog restart 客户端-rsyslogclient端 /etc/rsyslog.d/client.c

【MySQL】MySQL审计操作记录

server_audit是一款内嵌在mariadb的审计插件,在mysql中同样适用,主要用于记录用户操作 1.安装: 通过show variables like 'plugin_dir';查看你的插件目录, 我的是:/usr/lib64/mysql/plugin/???? 把下载好的插件server_audit.so 复制到/usr/lib64/mysql/plugin/ 注意chmod+x?server_audit.so 登录mysql执行插件安装命令: INSTALL PLUGIN ser