mysql5.5的audit审计功能是被自动触发的,在文件plugin_audit.h中可以看到比较详细的定义
在audit插件中,可控制的变量包括THD以及事件
其中事件分为两种结构体,可以进行强制转换:
第一种:
触发条件:
#define MYSQL_AUDIT_GENERAL_LOG 0
在提交给general query log之前被触发
#define MYSQL_AUDIT_GENERAL_ERROR 1
在发送给用户错误之前触发
#define MYSQL_AUDIT_GENERAL_RESULT 2
当将结果集合发送给用户后触发
#define MYSQL_AUDIT_GENERAL_STATUS 3
当发送一个结果集或发生错误时被触发
#define MYSQL_AUDIT_CONNECTION_CONNECT 0
完成认证后触发
#define MYSQL_AUDIT_CONNECTION_DISCONNECT 1
连接被中断时触发
#define MYSQL_AUDIT_CONNECTION_CHANGE_USER 2
在执行COM_CHANGE_USER命令后触发
从上面的分析,我们可以看出,在event中存储了相当丰富的信息,将notify函数进行了如下简单的修改: