ITPub博客

首页 > 数据库 > MySQL > 开启mysql 数据库审计功能。

开启mysql 数据库审计功能。

原创 MySQL 作者:babyyellow 时间:2021-11-17 17:15:14 0 删除 编辑

社区版的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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908674