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 with ; or \g.
Your MariaDB connection id is 42804
Server version: 10.0.14-MariaDB-log Source distribution
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> show variables like ‘%audit%‘;
Empty set (0.00 sec)
MariaDB [(none)]> INSTALL PLUGIN server_audit SONAME ‘server_audit.so‘;  #安装审计插件
Query OK, 0 rows affected (0.18 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_logging          | OFF                   |
| server_audit_mode             | 0                     |
| server_audit_output_type      | file                  |
| server_audit_syslog_facility  | LOG_USER              |
| server_audit_syslog_ident     | mysql-server_auditing |
| server_audit_syslog_info      |                       |
| server_audit_syslog_priority  | LOG_INFO              |
+-------------------------------+-----------------------+
14 rows in set (0.00 sec)
MariaDB [(none)]> SHOW VARIABLES LIKE ‘plugin_dir‘;   #插件地址路径
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+----------------------------- +
1 row in set (0.00 sec)

如果想永久加载,只需在配置文件里指定如下行即可,此时卸载该插件时会报错,插件将无法卸载,直到配置文件变更

[mysqld]
plugin-load=server_audit=server_audit.so
server_audit=FORCE_PLUS_PERMANENT

命令行启用audit ,重启后失效

MariaDB [(none)]> set global server_audit_file_rotate_size=1024*1024*1024;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> set global server_audit_events=‘query,table‘;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> set global server_audit_file_rotate_now=on;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> set global server_audit_logging=‘ON‘;
Query OK, 0 rows affected (0.00 sec)

为了使MySQL重启设置的变量仍然生效,需要在配置文件添加相应配置:

[mysqld]

server_audit_events=‘CONNECT,QUERY,TABLE‘

server_audit_logging=on

server_audit_file_rotate_size=2000000

server_audit_file_rotations=10

查看审计日志:

[[email protected]_Aolens_01 ~]# tail -n 20 /mydata/data/server_audit.log

参数说明:

  • server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE
  • server_audit_logging:启动或关闭审计
  • server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
  • server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
  • server_audit_file_rotate_size:限制日志文件的大小
  • server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮转
  • server_audit_file_rotate_now:强制日志文件轮转
  • server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users 优先级高
  • server_audit_syslog_facility:默认为LOG_USER,指定facility
  • server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分
  • server_audit_syslog_info:指定的info字符串将添加到syslog记录
  • server_audit_syslog_priority:定义记录日志的syslogd priority
  • server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响
  • server_audit_mode:标识版本,用于开发测试

MYSQL 添加审计功能:

wget https://dl.bintray.com/mcafee/mysql-audit-plugin/:audit-plugin-mariadb-10.0-1.1.0-625-linux-x86_64.zip
unzip  audit-plugin-mariadb-10.0-1.1.0-625-linux-x86_64.zip
cd audit-plugin-mariadb-10.0-1.1.0-625/lib
mysql -uroot -p -e "show global variables like ‘plugin_dir‘;"
‘plugin_dir‘, ‘/usr/local/mysql/lib/plugin/‘

#拷贝插件到mysql的插件目录

cp libaudit_plugin.so /usr/local/mysql/lib/plugin/‘

#安装审计插件

mysql -uroot -p -e "INSTALL PLUGIN AUDIT SONAME ‘libaudit_plugin.so‘;"

其他配置和MariaDB一样

MariaDB审计插件变量解释:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/#server_audit_events

MariaDB审计插件介绍:https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/

Percona的审计插件:https://www.percona.com/blog/2014/05/07/mysql-audit-plugin-now-available-in-percona-server-5-5-and-5-6/

https://www.percona.com/doc/percona-server/5.6/management/audit_log_plugin.html

MySQL的审计插件:https://dev.mysql.com/doc/refman/5.5/en/audit-log-installation.html

第三方的MySQL审计插件:https://github.com/mcafee/mysql-audit

时间: 2024-10-15 02:31:15

MySQL之MariaDB启用审计插件的相关文章

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

审计插件

通过审计插件可以记录服务器活动,记录谁连接到服务器,运行了什么查询,访问了哪些表,能存储到日志文件或发送到本地syslogd守护进程. 一.mariadb mariadb的审计插件能工作在mariadb.mysql和percona server.拷贝到server_audit.so到适当的目录,然后安装插件: [email protected][(none)] 21:52:32>INSTALL PLUGIN server_audit SONAME 'server_audit'; Query OK

MySQL Percona server 5.5 安装审计插件

近期,公司要求对MySQL 数据库上操作进行审计:通过了解MySQL 官方企业版(付费版)本中集成了audit_log审计插件,但是社区开源版本中并不包含该插件,也没提供下载.进一步了解 MariaDB 有一个名为server_audit.so审计插件,据传以前是可以独立下载的.但是我在官网没找到下载链接,索性下载一个MariaDB 5.5.50 的二进制安装包,解压后从中捞一个 server_audit.so 文件, 1.登录数据库,查看plugin_dir目录mysql> SHOW GLOB

MySQL audit—SQL审计插件

自从MySQL5.6出现以来开始对json的支持后,使得在MySQL上增加了一些新特性,为此这一点让MySQL增加了一些新的插件支持,在这里就说一说MySQL的SQL审计插件,SQL审计插件并不是MySQL官方的,它是由macfee公司基于percona开发的,所以,在添加SQL审计的插件功能时需要去下载对应版本的MySQL audit插件(支持MariaDB),至于MySQL的插件安装比较简单,记得以前有说过MySQL的半同步复制功能时,其中的半同步复制也是插件,需要的可以参看:http://

mysql添加mcafee 审计插件

插件源码地址https://github.com/mcafee/mysql-audit插件安装方法https://github.com/mcafee/mysql-audit/wiki/Installation插件下载地址https://bintray.com/mcafee/mysql-audit-plugin/release/1.0.9-585 1.查看mysql插件存放目录mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';+-------------

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

11.1 LAMP架构介绍 11.2 MySQL、MariaDB介绍 11.3/11.4/11.5 MySQL安装

11.1 LAMP架构介绍 11.2 MySQL.MariaDB介绍 11.3/11.4/11.5 MySQL安装 扩展 mysql5.5源码编译安装 http://www.aminglinux.com/bbs/thread-1059-1-1.html mysql5.7二进制包安装(变化较大) http://www.apelearn.com/bbs/thread-10105-1-1.html 11.1 LAMP架构介绍 Linux + Apache(httpd)+ MySQL + PHP  PH

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL、MariaDB介绍 11.3/11.4/11.5 MySQL安装 扩展 mysql5.5源码编译安装

11.1 LAMP架构介绍11.2 MySQL.MariaDB介绍11.3/11.4/11.5 MySQL安装扩展mysql5.5源码编译安装   http://www.aminglinux.com/bbs/thread-1059-1-1.html mysql5.7二进制包安装(变化较大)  http://www.apelearn.com/bbs/thread-10105-1-1.html =====================================================

CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定

最近因为一些事情的发生,出现了好端端的页面,变成了空页面.转头开发同事就来质问我,是不是我动了什么,后来经过调查发现,是平台运营的同事误删资料导致的. 所以如果运维或者开发部门有很多人都分配了数据库的增删改之类的操作权限的话,某一天哪个表或者字段丢失了都无法找到是谁干的,所以这个锅只能运维来背了.因此很有必要把数据库的操作记录保存下来,但是代价就是服务器的效能就会变差一些了,但为了安全起见,还是建议开启的. 在一些操作限制中,难免会有人质疑具有super权限的用户做了什么动作,所以还是把root