开启mysql 数据库审计功能。

来源:这里教程网 时间:2026-03-01 16:06:43 作者:

社区版的mysql 是没有审计功能的。  需要开启审计功能。  其实看到  $mysql/lib/plugin  里面的结构,基本也就明白了。剩下的就是兼容性问题了。  mariadb  带有审计功能的插件。   对应的server_audit.so  文件。  我们把这个文件拿到  mysql/lib/plugin 里面。  这里需要注意一个问题。  在编译的时候。  mariadb 的server_audit.so 是有路径的。  如果是用的  mariadb 的已经编译好的二进制分发包。  一个是设置文件对应的目录。  一个是做符号链接。  直接放到 mysql/lib/plugin下面启动的时候,  看 err 日志 。里面有其实找不到so文件。  然后 根据提示做一个对应符号链接 ,就可以了。  rpm  安装的 对应于   /usr/lib64/mysql/plugin my.cnf 配置:  ####   server audit   by  mariadb  plugins ##############3 plugin_load="server_audit=server_audit.so" server_audit_logging=on server_audit_file_path =/usr/local/mysql/audits/server_audit.log server_audit_file_rotate_size=100000000 #server_audit=FORCE_PLUS_PERMANENT show global variable like  '%audit%';   set  gloal   xxxxx  =xx  可以动态调整 。 我们看看对应的审计日志啥样子 对于已经投产的数据库。  不能随便停机了 同样的把so 文件放到正确位置:  mysql 数据库里面:  INSTALL PLUGIN server_audit SONAME 'server_audit.so'; show variables like '%audit%'; set global server_audit_logging=on; server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE server_audit_logging:启动或关闭审计 server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录 server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中 server_audit_file_rotate_size:限制日志文件的大小 server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高 server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响

相关推荐