mysql5.7审计功能开启_MySQL审计正确使用姿势

前言

数据库审计功能主要将用户对数据库的各类操作行为记录审计日志,以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体系的重要组成部分。

MySQL 5.5企业版增加审计功能,但是需要付费。MySQL社区版没有审计功能,除了商业版的审计插件外,常见的还有三类审计插件Percona Audit Log Plugin、MariaDB Audit Plugin、McAfee MySQL Audit Plugin。这几个插件功能上大同小异,只是展示的内容和格式略有不同。InnoSQL 5.7版本基于Percona 5.7.26-29 审计插件Audit Log Plugin 实现了审计功能,并对性能进行了优化,修改了原生版本的一些日志记录的问题,同时也增加了审计日志的字段丰富记录内容。

下面对InnoSQL审计插件的功能及使用方法进行介绍。

开启审计

安装插件

配置文件加载插件

我们可以在配置文件中加载插件开启审计。

[mysqld]

plugin-load=audit_log.so

如果在配置文件中加载了audit_log.so可以直接配置审计相关的参数

audit_log_timestamps=SYSTEM

否则,可以通过loose的方式配置插件参数,INSTALL插件后生效。这也是MySQL插件参数的通用配置方法。

loose-audit_log_timestamps=SYSTEM

命令行加载插件

审计功能的开启还有另外一种方式,就是在命令行中安装审计插件。

mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';

启停审计功能

支持在线进行审计功能的启停操作。

启用审计:

mysql> set global audit_log_policy= ALL/ LOGINS/ QUERIES;

停用审计:

mysql> set global audit_log_policy=NONE;

卸载插件

卸载插件命令

mysql> UNINSTALL PLUGIN audit_log;

如果此时仍有业务记录审计日志,那么将无法在线卸载,需重启生效。

如果不需要审计了,可以使用set global audit_log_policy=NONE 在线停用审计功能,停用之后跟未安装插件的性能一致。

参数介绍

audit_log_buffer_size

variable

audit_log_buffer_size

Command Line

YES

Scope

Global

Dynamic

No

Variable Type

Numeric

Default Value

1MB

审计日志缓冲区大小,当audit_log_strategy生效(audit_log_handler 为 'FILE')

且设置为ASYNCHRONOUS、PERFORMANCE时生效。audit_log_buffer_size 的大小设置需要是4096的正整数倍。

audit_log_include_accounts / audit_log_exclude_accounts

variable

audit_log_include_accounts

audit_log_exclude_accounts

Command Line

YES

Scope

Global

Dynamic

YES

Variable Type

String

Default Value

NULL

指定记录包含/不包含的用户的审计日志,取值逗号分隔,如果设置include或者exclude,则另一个变量不能设置任何值,只能将设置值的变量置NULL后才能设置另一个变量的值,反之亦然。

注意:设置过滤后,在已经存在的服务器连接中不生效,需要重新连接才生效。

举例:

mysql> SET GLOBAL audit_log_include_accounts = 'user1@localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL audit_log_exclude_accounts = 'root@localhost';

Query OK, 0 rows affected (0.00 sec)

audit_log_include_commands / audit_log_exclude_commands

variable

audit_log_include_commands

audit_log_exclude_commands

Command Line

YES

Scope

Global

Dynamic

YES

Variable Type

String

Default Value

NULL

指定记录包含/不包含的命令类型的审计日志,取值逗号分隔,如果设置include或者exclude,则另一个变量不能设置任何值,只能将设置值的变量置NULL后才能设置另一个变量的值,反之亦然。

Commands可以设置的类型:

mysql> SELECT name FROM performance_schema.setup_instruments WHERE name LIKE "statement/sql/%" ORDER BY name;

+---------------------------------------+

| name |

+---------------------------------------+

| statement/sql/alter_db |

| statement/sql/alter_db_upgrade |

| statement/sql/alter_event |

| statement/sql/alter_function |

| statement/sql/alter_instance |

| statement/sql/alter_procedure |

| statement/sql/alter_server |

| statement/sql/alter_table |

| statement/sql/alter_tablespace |

| statement/sql/alter_user |

| statement/sql/analyze |

| statement/sql/assign_to_keycache |

| statement/sql/begin |

| statement/sql/binlog |

| statement/sql/call_procedure |

| statement/sql/change_db |

……

| statement

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值