首页 > 数据库 > MySQL > 开启mysql 数据库审计功能。
社区版的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将不受该设置影响
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2842726/ ,如需转载,请注明出处,否则将追究法律责任。