audit plugin-记录用户操作信息

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函数进行了如下简单的修改:


这样,我们实现了记录用户名、用户主机信息以及sql操作等相关信息


你可能感兴趣的:(plugin)