mysql数据库中我们如果想记录用户的操作信息,可以通过audit审计功能来来实现。该功能是被自动触发的,在文件plugin_audit.h中可以看到比较详细的定义。在audit插件中,可控制的变量包括THD以及事件。
其中事件分为两种结构体,可以进行强制转换:
***种:
struct mysql_event_general
{
unsigned int event_subclass;
int general_error_code;
unsigned long general_thread_id;
const char *general_user;
unsigned int general_user_length;
const char *general_command;
unsigned int general_command_length;
const char *general_query;
unsigned int general_query_length;
struct charset_info_st *general_charset;
unsigned long long general_time;
unsigned long long general_rows;
};
触发条件:
#define MYSQL_AUDIT_GENERAL_LOG 0 :在提交给general query log之前被触发。
#define MYSQL_AUDIT_GENERAL_ERROR 1 :在发送给用户错误之前触发。
#define MYSQL_AUDIT_GENERAL_RESULT