这里我们比较关注的是server_audit_logging、server_audit_events、server_audit_output_type、server_audit_file_path、server_audit_file_rotate_size、server_audit_file_rotations、server_audit_file_rotate_now。
server_audit_logging:
即为是否开启,bool类型,值为ON(1)以及OFF(0)。
server_audit_events:
记录的事件,如果为空字符串,则代表记录所有的事件。
CONNECT:连接、断开连接和失败的连接,包括错误代码
QUERY:以纯文本形式执行的查询及其结果,包括由于语法或权限错误而失败的查询
TABLE:受查询执行影响的表
QUERY_DDL:与QUERY相同,但只筛选DDL类型的查询(create、alter、drop、rename和truncate语句,create/drop[procedure/function/user]和rename user除外(它们不是DDL)
QUERY_DML:与QUERY相同,但只筛选DML类型的查询(do、call、load data/xml、delete、insert、select、update、handler和replace语句)
QUERY_DCL:与QUERY相同,但只筛选DCL类型的查询(create user、drop user、rename user、grant、revoke和set password语句)
QUERY_DML_NO_SELECT:与QUERY_DML相同,但不记录SELECT查询。(从1.4.4版开始)(do、call、load data/xml、delete、insert、update、handler和replace语句)
server_audit_file_path:
当server_audit_output_type为file时,将路径和文件名设置为日志文件。如果指定的路径作为目录存在,那么将在该目录内创建名为“ server_audit.log”的日志。否则,该值将被视为文件名。默认值“ server_audit.log”,这意味着将在数据库目录中创建此文件。
server_audit_file_rotate_size、server_audit_file_rotations、server_audit_file_rotate_now:
当server_audit_output_type为file时,是否强制轮转(server_audit_file_rotate_now),每个日志文件的最大大小(server_audit_file_rotate_size),以及日志文件的最大数量(server_audit_file_rotations)。
更多变量的相关的解释可以查看官方文档:MariaDB Audit Plugin Options and System Variables
那么,从这个插件的功能来看,基本上默认配置就可以满足测评项的要求。
3.3. MySQL Enterprise Audit PluginMySQL 企业版的 Enterprise Edition 中自带 Audit Plugin ,名为 audit_log.so。
对于该插件,可以在my.cnf文件中加入以下参数启用它:
[mysqld] plugin-load=audit_log.so也可以查询插件,看到插件的状态:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'audit%'; +-------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +-------------+---------------+ | audit_log | ACTIVE | +-------------+---------------+该插件的相关系统变量为:
mysql> SHOW VARIABLES LIKE 'audit_log%'; +-----------------------------+--------------+ | Variable_name | Value | +-----------------------------+--------------+ | audit_log_buffer_size | 1048576 | | audit_log_connection_policy | ALL | | audit_log_current_session | OFF | | audit_log_exclude_accounts | | | audit_log_file | audit.log | | audit_log_filter_id | 0 | | audit_log_flush | OFF | | audit_log_format | NEW | | audit_log_include_accounts | | | audit_log_policy | ALL | | audit_log_rotate_on_size | 0 | | audit_log_statement_policy | ALL | | audit_log_strategy | ASYNCHRONOUS | +-----------------------------+--------------+audit_log_connection_policy: