Welcome 微信登录

首页 / 数据库 / MySQL / MySQL审计插件安装使用说明文档

目的为了便于开发人员和DBA安装和使用MySQL审计插件,并对审计的使用和审计粒度有更全面的理解。本文对审计插件的设计思想、审计粒度、审计配置说明、安装使用、其他内容进行详细的描述。一方面便于后续的维护和开发,另一方面对于使用提供便利的查询。设计思想MySQL的审计接口为开发审计插件提供了有利的条件,基于MySQL审计接口,参考General log设计思想,将审计插件的审计类型定义了:FILE和TABLE两种类型,用于将审计的内容分别写入日志文件或数据库表。此外,对审计的粒度进行划分,不仅根据操作命令的类型进行划分,并对Query命令类型进行进一步的细化分,将DDL、DML、DCL三种类型不同SQL语句类型进行划分;对特定的用户进行审计,仅对指定的用户审计,结合审计的粒度实现对用户行为的审计;对特定的对象(数据库、数据表)进行审计,目前仅给出配置,源码中暂时没有实现。此外,审计的粒度采用按位标示,并通过按位覆盖可以进行自定义的审计粒度。审计粒度审计插件将审计的粒度细化到具体的SQL语句,主要包括:create、drop、alter、ddl(包括create、drop、alter)、insert、delete、update、modify(包括insert、delete、update、replace)、select、dml(包括insert、delete、update、select)、grant、revoke、dcl(包括grant、revoke)、set、cmd(包括ddl、dml、dcl、set)、connect、quit、connection(包括connect、quit)、server(包括修改server相关的命令操作,如init db、sleep等操作)、full(包括以上所有操作)、all(包括所有操作,包括预留的所有的审计粒度的扩展)、none(不进行审计),这些粒度在配置文件中的以audit_为前缀,值为1/0(或on/off)。为了更精确的控制某些命令,提供audit_ops参数,该参数的值是整数,通过整数的二进制位来控制具体的审计粒度。具体的审计粒度对应整数的二进制位如下所示:
粒度位值
AUDIT_ALL(~AUDIT_NONE)
AUDIT_NONE(ulonglong)0
AUDIT_CREATE(ulonglong)1
AUDIT_ALTER(AUDIT_CREATE << 1)
AUDIT_DROP(AUDIT_CREATE << 2)
AUDIT_DDL(AUDIT_CREATE | AUDIT_ALTER | AUDIT_DROP)
AUDIT_INSERT(AUDIT_CREATE << 3)
AUDIT_UPDATE(AUDIT_CREATE << 4)
AUDIT_REPLACE(AUDIT_CREATE << 5)
AUDIT_DELETE(AUDIT_CREATE << 6)
AUDIT_MODIFY(AUDIT_INSERT | AUDIT_UPDATE | AUDIT_DELETE | AUDIT_REPLACE)
AUDIT_SELECT(AUDIT_CREATE << 7)
AUDIT_DML(AUDIT_MODIFY | AUDIT_SELECT)
AUDIT_GRANT(AUDIT_CREATE << 8)
AUDIT_REVOKE(AUDIT_CREATE << 9)
AUDIT_DCL(AUDIT_GRANT | AUDIT_REVOKE)
AUDIT_SET(AUDIT_CREATE << 10)
AUDIT_CMD(AUDIT_DDL | AUDIT_DML | AUDIT_DCL | AUDIT_SET)
AUDIT_CONNECT(AUDIT_CREATE << 11)
AUDIT_QUIT(AUDIT_CREATE << 12)
AUDIT_CHANGE_USER(AUDIT_CREATE << 13)
AUDIT_CONNECTION(AUDIT_CONNECT | AUDIT_QUIT | AUDIT_CHANGE_USER)
AUDIT_FULL(AUDIT_CMD | AUDIT_CONNECTION)
AUDIT_SLEEP(AUDIT_CREATE << 16)
AUDIT_INIT_DB(AUDIT_CREATE << 17)
AUDIT_FIELD_LIST(AUDIT_CREATE << 18)
AUDIT_REFRESH(AUDIT_CREATE << 19)
AUDIT_SHUTDOWN(AUDIT_CREATE << 20)
AUDIT_STATISTICS(AUDIT_CREATE << 21)
AUDIT_PROCESSLIST(AUDIT_CREATE << 22)
AUDIT_KILL(AUDIT_CREATE << 23)
AUDIT_DEBUG(AUDIT_CREATE << 24)
AUDIT_PING(AUDIT_CREATE << 25)
AUDIT_TIME(AUDIT_CREATE << 26)
AUDIT_DELAY_INSERT(AUDIT_CREATE << 27)
AUDIT_BINLOG_DUMP(AUDIT_CREATE << 28)
AUDIT_TABLE_DUMP(AUDIT_CREATE << 29)
AUDIT_CONNECT_OUT(AUDIT_CREATE << 30)
AUDIT_REGISTER_SLAVE(AUDIT_CREATE << 31)
AUDIT_PREPARE(AUDIT_CREATE << 32)
AUDIT_EXECUTE(AUDIT_CREATE << 33)
AUDIT_LONG_DATA(AUDIT_CREATE << 34)
AUDIT_CLOSE_STMT(AUDIT_CREATE << 35)
AUDIT_RESET_STMT(AUDIT_CREATE << 36)
AUDIT_SET_OPTION(AUDIT_CREATE << 37)
AUDIT_FETCH(AUDIT_CREATE << 38)
AUDIT_DAEMON(AUDIT_CREATE << 39)
AUDIT_ERROR(AUDIT_CREATE << 40)
AUDIT_SERVER(~AUDIT_FULL)
  • 1
  • 2
  • 3
  • 下一页
MySQL数据库Alter database 处理逻辑MySQL源码中的BUG相关资讯      MySQL基础 
  • MySQL因为区分大小写而引起找不到  (09/08/2012 20:12:21)
  • MySQL 执行计划解读  (09/07/2012 06:18:14)
  • MySQL审计插件安装使用说明文档--  (08/09/2012 08:57:10)
  • MySQL 版本选择  (09/07/2012 06:18:58)
  • MySQL Internal 笔记  (09/01/2012 16:34:19)
  • MySQL的“[Warning] Invalid (old?  (08/09/2012 08:55:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

<