数据库内置审计功能
admin
2023-05-29 01:41:23
0

       作为一名dba,有时候,总会遇到数据库某个库,某个表,某个字段异常,或者数据被莫名的删除了,这个时候大家各种推断是不是bug了啊,是不是被黑了啊。。。这个时候一个审计功能就凸显出来了。

       mariadb数据库对审计插件(server_audit.so)支持比较良好,今天我们进行一个简单安装和测试

 安装方法也很简单:INSTALL SONAME "server_audit.so"

  数据库内置审计功能

这样就安装完成了,我们可以看看对应的参数变量

数据库内置审计功能

这些参数和变量都是可以动态设置的,具体参数说明,见官网:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/

 一般我们主要设置一下几个参数就可以了


                    

                     set  global server_audit_events = QUERY  /*这个参数有三个值connect,table,query

set  global server_audit_file_rotate_size = 524288000  /*每个日志文件的大小

set  global  server_audit_file_rotations = 200   

set  global  server_audit_file_path  ="/data/mysql/auditlog/server_audit.log"  /*log文件路径   必须保证/data/mysql/auditlog/这个路径是存在的!而且 chown mysql.mysql  ,否则将 开启审计功能 后,将导致mysql报错,甚至服务挂掉!

 set  global  server_audit_logging = 1   /*开启审计功能    强烈建议:在设置好以下参数完成后,再开启

设置完成后,再将对应参数添加到配置文件中


                     server_audit_logging = 1

server_audit_events = QUERY

server_audit_file_rotate_size = 524288000

server_audit_file_rotations = 200

server_audit_file_path  =/data/mysql/auditlog/server_audit.log

下面我们看看实际效果,对比一下server_audit_events这个参数connet,table,query三个不同值的日志对比;

 1.参数为server_audit_events= query时

 数据库内置审计功能

 日志内容:
20161229 11:35:39,localhost.localdomain,root,localhost,42,745,QUERY,mysql,'show databases',0
20161229 11:35:55,localhost.localdomain,root,localhost,42,746,QUERY,mysql,'create database yhtest',0
20161229 11:36:03,localhost.localdomain,root,localhost,42,747,QUERY,mysql,'SELECT DATABASE()',0
20161229 11:36:03,localhost.localdomain,root,localhost,42,749,QUERY,yhtest,'show databases',0
20161229 11:36:03,localhost.localdomain,root,localhost,42,750,QUERY,yhtest,'show tables',0
20161229 11:36:42,localhost.localdomain,root,localhost,42,751,QUERY,yhtest,'create table yhtest(a int primary ,b int)',1064
20161229 11:36:56,localhost.localdomain,root,localhost,42,752,QUERY,yhtest,'create table yhtest(a int primary key ,b int)',0
20161229 11:37:35,localhost.localdomain,root,localhost,42,753,QUERY,yhtest,'insert into yhtest value(1,1),(2,2),(3,3)',0
20161229 11:37:46,localhost.localdomain,root,localhost,42,754,QUERY,yhtest,'select * from yhtest',0
20161229 11:38:07,localhost.localdomain,root,localhost,42,755,QUERY,yhtest,'delete from yhtest where a=1',0
20161229 11:38:15,localhost.localdomain,root,localhost,42,756,QUERY,yhtest,'drop table yhtest',0
20161229 15:45:07,localhost.localdomain,root,localhost,42,757,QUERY,yhtest,'show variables like \'server%\'',0


 2.参数为server_audit_events=connect时                                                                                                        20161229 16:09:50,localhost.localdomain,root,localhost,42,0,DISCONNECT,yhtest,,0
20161229 16:09:54,localhost.localdomain,root,localhost,43,0,CONNECT,,,0
20161229 16:11:37,localhost.localdomain,root,localhost,43,0,DISCONNECT,yhtest2,,0
20161229 16:11:39,localhost.localdomain,root,localhost,44,0,CONNECT,,,0
20161229 16:12:06,localhost.localdomain,root,localhost,44,0,DISCONNECT,mysql,,0

 3.参数为server_audit_events=table时                                                                                                    20161229 16:17:52,localhost.localdomain,root,localhost,47,857,CREATE,yhtest,t2,
20161229 16:17:59,localhost.localdomain,root,localhost,47,858,WRITE,mysql,table_stats,
20161229 16:17:59,localhost.localdomain,root,localhost,47,858,WRITE,mysql,column_stats,
20161229 16:17:59,localhost.localdomain,root,localhost,47,858,WRITE,mysql,index_stats,
20161229 16:17:59,localhost.localdomain,root,localhost,47,858,DROP,yhtest,t2,
20161229 16:18:04,localhost.localdomain,root,localhost,47,859,CREATE,yhtest,t3,
20161229 16:18:27,localhost.localdomain,root,localhost,47,860,WRITE,yhtest,t3,
20161229 16:19:04,localhost.localdomain,root,localhost,47,861,WRITE,yhtest,t3,
20161229 16:19:18,localhost.localdomain,root,localhost,47,862,WRITE,mysql,table_stats,
20161229 16:19:18,localhost.localdomain,root,localhost,47,862,WRITE,mysql,column_stats,
20161229 16:19:18,localhost.localdomain,root,localhost,47,862,WRITE,mysql,index_stats,
20161229 16:19:18,localhost.localdomain,root,localhost,47,862,DROP,yhtest,t3,

 从上面可以看出,我们需要一般我们使用query就足够了,需要注意的是我们在使用这个插件的时候需要注意磁盘空间,如果数据库操作频繁,可能产生大量的日志!




 


 



 

 






相关内容

热门资讯

与郑丽文同台仅几分钟,李四川解... 国民党籍新北市长参选人李四川21日赴新北参加“力挺李四川团结大会”与国民党主席郑丽文仅同台寥寥数分钟...
AI研发迈向团队作战,国内首个... 人工智能正在各领域研发环节实现颠覆性变革。今后,AI将不再是程序员的“副驾驶”,还可能是企业研发团队...
东莞智数集团与华为签署“鸿蒙之... 5月20日,东莞市人工智能与数字经济集团有限公司(以下简称“智数集团”)与华为技术有限公司(以下简称...
刚刚,谢赛宁团队放出第二代表征... 来源:市场资讯 (来源:机器之心Pro) 编辑|Panda AI 图像生成通常遵循「能力越强、代价...
山寨学术会议被打假后,仍有高校... 澎湃新闻记者 钟煜豪近日,所谓的“第十二届人文学科和社会科学研究国际学术会议(ICHSSR 2026...
以后用AI就像交话费?三大运营... 当前,随着人工智能技术快速迭代,智能体、大模型应用蓬勃发展,我国词元调用量呈爆发式增长。近期,中国移...
中国团队提出AccLock方案... 5 月 21 日消息,来自中国苏州大学、北京大学的科研团队于 5 月 12 日在 arxiv 上发表...
重新定义信号与频谱分析仪:罗德... 全球测试测量专家罗德与施瓦茨(以下简称“R&S”)宣布,将于6月23日举办 “新一代多通道信号与频谱...
美媒:伊朗军方重建速度远超预期 据美国有线电视新闻网(CNN)报道,两名熟悉美国情报评估的消息人士透露,伊朗已在今年4月初开始的六周...
泰国取消60天免签,是想防着谁... 【文/观察者网专栏作者 岳汉】最近,泰国缩短免签这个事,在国内还引起了挺大关注。很多中国朋友都不解:...