千家信息网

Percona Audit Log Plugin实现对mysql 审计的操作步骤

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,下文给大家带来有关Percona Audit Log Plugin实现对mysql 审计的操作步骤内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完Perco
千家信息网最后更新 2026年11月03日Percona Audit Log Plugin实现对mysql 审计的操作步骤

下文给大家带来有关Percona Audit Log Plugin实现对mysql 审计的操作步骤内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完Percona Audit Log Plugin实现对mysql 审计的操作步骤你一定会有所收获。

Percona Audit Log Plugin提供对特定云服务器上执行的连接和查询活动的监视和记录。 有关活动的信息将存储在XML日志文件中,其中每个事件将具有其NAME字段,其自己的唯一RECORD_ID字段和TIMESTAMP字段。 此实现是MySQL Enterprise Audit Log Plugin的替代审计日志插件生成以下事件的日志:Audit - Audit事件表示审计日志记录已开始或已完成。 记录开始时NAME字段为Audit,日志记录完成时为NoAudit。 审计记录还包括云服务器版本和命令行参数。

"NAME"="Audit"
"RECORD"="1_2014-04-29T09:29:40"
"TIMESTAMP"="2014-04-29T09:29:40 UTC"
"MYSQL_VERSION"="5.6.17-65.0-655.trusty"
"STARTUP_OPTIONS"="--basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306"
"OS_VERSION"="x86_64-debian-linux-gnu",
/>
Connect/Disconnect - Connect record event will have NAME field Connect when user logged in or login failed, or Quit when connection is closed. Additional fields for this event are CONNECTION_ID, STATUS, USER, PRIV_USER, OS_LOGIN, PROXY_USER, HOST, and IP. STATUS will be 0 for successful logins and non-zero for failed logins.
Example of the Disconnect event:

"NAME"="Quit"
"RECORD"="24_2014-04-29T09:29:40"
"TIMESTAMP"="2014-04-29T10:20:13 UTC"
"CONNECTION_ID"="49"
"STATUS"="0"
"USER"=""
"PRIV_USER"=""
"OS_LOGIN"=""
"PROXY_USER"=""
"HOST"=""
"IP"=""
"DB"=""
/>

1,安装:

审核日志插件随Percona Server一起提供,但默认情况下不会安装。要启用该插件,您必须运行以下命令

INSTALL PLUGIN audit_log SONAME 'audit_log.so';

验证插件是否安装成功

SHOW PLUGINS;

+--------------------------------+----------+--------------------+--------------+---------+
| Name | Status | Type | Library | License |
+--------------------------------+----------+--------------------+--------------+---------+
...
| audit_log | ACTIVE | AUDIT | audit_log.so | GPL |
+--------------------------------+----------+--------------------+--------------+---------+

2,日志格式:

审核日志插件支持四种日志格式:OLD,NEW,JSON和CSV。 OLD和NEW格式基于XML,前者将日志记录属性输出为XML属性,后者输出为XML标记。 记录的信息在所有四种格式中都是相同的。 日志格式选择由audit_log_format变量控制。


Quit
10902_2014-04-28T11:02:54
2014-04-28T11:02:59 UTC
36
0







3,实战:
以下示例显示添加将受监控的用户

mysql> SET GLOBAL audit_log_include_accounts = 'user1@localhost,root@localhost';
Query OK, 0 rows affected (0.00 sec)
If you you try to add users to both include and exclude lists server will show you the following error:

mysql> SET GLOBAL audit_log_exclude_accounts = 'user1@localhost,root@localhost';
ERROR 1231 (42000): Variable 'audit_log_exclude_accounts' can't be set to the value of 'user1@localhost,root@localhost'
To switch from filtering by included user list to the excluded one or back, first set the currently active filtering variable to NULL:

mysql> SET GLOBAL audit_log_include_accounts = NULL;
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL audit_log_exclude_accounts = 'user1@localhost,root@localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL audit_log_exclude_accounts = "'user'@'host'";
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL audit_log_exclude_accounts = '''user''@''host''';
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL audit_log_exclude_accounts = '\'user\'@\'host\'';
Query OK, 0 rows affected (0.00 sec)
To see what users are currently in the on the list you can run:

mysql> SELECT @@audit_log_exclude_accounts;
+------------------------------+
| @@audit_log_exclude_accounts |
+------------------------------+
| 'user'@'host' |
+------------------------------+
1 row in set (0.00 sec)

--备注:监控的用户名必须和mysql.user里用户名一致,不然不生效

NAME="Connect"
RECORD="4971917_2016-08-22T09:09:10"
TIMESTAMP="2016-08-22T09:12:21 UTC"
CONNECTION_ID="6"
STATUS="0"
USER="user1" ;; this is a 'user' part of account in 5.7
PRIV_USER="user1"
OS_LOGIN=""
PROXY_USER=""
HOST="localhost" ;; this is a 'host' part of account in 5.7
IP=""
DB=""
/>

过渡掉user1(排除user1)

SET GLOBAL audit_log_exclude_accounts = 'user1@%';

对于上文关于Percona Audit Log Plugin实现对mysql 审计的操作步骤,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

日志 审计 插件 格式 字段 步骤 事件 用户 信息 命令 属性 服务器 用户名 有关 服务 活动 监控 输出 不同 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技活动banner 上海互联网科技有限公司 合肥互联网科技公司 喔噻互联网科技 唐信互联网科技 大连 上海万想互联网科技 上海亿帐通互联网科技 左右互联网络科技 海南购全球互联网科技 哈尔滨新华互联网科技学院 小米互联网科技园设置 互联网企业和科技型企业 花神(南京)互联网科技有限公司 上海科技产业互联网平台 南通创西澳互联网科技有限公司 从那以后互联网科技有限公司 上海乐五互联网科技有限公司 国产互联网科技公司 北京天晋互联网科技有限公司 小牛互联网科技有限公司地址 西安纸贵互联网科技有限公司 朗新科技与工业互联网 为想互联网科技 互联网时代科技改变生活 宝灵互联网科技有限公司 成都互联网科技公司工作好不好 中国科技创新与世界互联网大会 互联网安防科技感 艺电能源互联网科技有限公司招聘 前海云享互联网科技
0