System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于读写代理的全量SQL审计系统及方法技术方案_技高网

一种基于读写代理的全量SQL审计系统及方法技术方案

技术编号:41250091 阅读:7 留言:0更新日期:2024-05-09 23:58
本发明专利技术涉及数据库审计技术领域,具体公开了一种基于读写代理的全量SQL审计系统及方法,其中,所述全量SQL审计系统包括AP I、读写分离代理组件和数据库服务器;其中,所述API用于将数据调用至所述读写分离代理组件;所述读写分离代理组件用于接收所述数据,并用于对所述数据进行SQL解析拆分和SQL执行;其中,所述SQL执行包括规则匹配,所述规则匹配用于将读写代理线程和审计线程分散到不同的数据库服务器;本发明专利技术公开的全量SQL审计系统及方法能够更准确地监控和记录所有数据库操作,提高审计的全面性和准确性;读写代理通过无阻塞且无锁环形数组实现转发缓冲,解决高流量情况下对数据性能的影响。

【技术实现步骤摘要】

本专利技术涉及数据库审计,尤其是涉及一种基于读写代理的全量sql审计系统及方法。


技术介绍

1、数据库是现代计算机系统中的重要组成部分,广泛应用于各种行业的信息管理和业务处理。在企业级应用场景中,对数据库进行审计是保障数据安全和业务合规性的必要手段。目前,常用的数据库审计方法包括基于传输层审计和基于插件的审计。其中,基于传输层审计主要通过抓包解析的方式实现,但需要对数据进行解析,存在一定的复杂度;基于插件的审计可以减少对数据的解析,但嵌入内核工作对数据库性能有一定的损耗。


技术实现思路

1、本专利技术的目的是提供一种基于读写代理的全量sql审计系统,包括api、读写分离代理组件和数据库服务器;其中,所述api和数据库服务器分别连接于所述读写分离代理组件;所述数据库服务器设置有若干个;

2、所述api用于将数据调用至所述读写分离代理组件;

3、所述读写分离代理组件用于接收所述数据,并用于对所述数据进行sql解析拆分和sql执行;其中,所述sql执行包括规则匹配,所述规则匹配用于将读写代理线程和审计线程分散到不同的数据库服务器。

4、进一步的,所述数据库服务器包括数据集群服务器和日志存储服务器。

5、进一步的,所述数据集群服务器和所述日志存储服务器分别连接于所述读写分离代理组件;

6、所述数据集群服务器通过所述规则匹配将所述读写代理线程连接至所述数据集群服务器;所述数据集群服务器通过所述规则匹配将所述审计线程连接至所述日志存储服务器。

7、进一步的,所述规则匹配通过有界无锁环形数组将所述审计线程连接至所述日志存储服务器。

8、进一步的,所述数据集群服务器中包含若干个数据库。

9、进一步的,所述sql执行还包括负载平衡,所述负载平衡用于根据规则将不同的所述数据分发至不同的数据库。

10、进一步的,所述读写分离代理组件包括连接器和分析器;其中,所述连接器分别连接于所述ap i和所述分析器;

11、所述连接器用于接收所述ap i的所述数据,并将所述数据传输至所述分析器,同时,所述连接器还用于权限验证;

12、所述分析器用于接收所述数据,并用于实现所述sql解析拆分和所述sql执行。

13、进一步的,所述审计线程用于接收所述数据,进行审计规则匹配;

14、根据匹配到的所述审计规则对所述数据的关键信息进行提取,并将所述关键信息进行审计操作,完成所述审计操作后获得审计结果,将所述审计结果记录至所述日志存储服务器中。

15、进一步的,所述关键信息包括表名、字段名和/或操作类型;

16、所述审计结果包括sql语句、执行时间和/或执行结果。

17、本专利技术还提供一种基于读写代理的全量sql审计方法,包括:

18、创建审计线程和有界无锁环形数组,所述审计线程用于数据转发和通信,而有界无锁环形数组用于缓冲审计信息;

19、创建读写代理主线程,所述读写代理主线程用于对sql请求进行解析,并将解析结果分发给所述审计线程进行处理;

20、所述审计线程接收所述读写代理主线程分发的数据,并进行审计规则匹配,根据所述审计规则提取关键信息;

21、所述审计线程对所述关键信息进行审计操作获得审计结果,并将所述审计结果记录下来;

22、所述审计结果完成记录后,所述审计线程对审计信息进行上报。

23、进一步的,所述关键信息包括表名、字段名和/或操作类型;

24、和/或,所述审计结果包括sql语句、执行时间和/或执行结果。

25、本专利技术公开一种基于读写代理的全量sql审计系统及方法,有益效果主要有:

26、全面审计:本专利技术提供了一种基于读写代理的全量sql审计方法,能够实现对所有sql操作的全面审计。相比于传统的部分sql审计方法,能够更准确地监控和记录所有数据库操作,提高审计的全面性和准确性。

27、数据读写分离支持:本专利技术基于数据读写分离架构,可以无缝地与现有的数据读写分离系统集成。通过在读写代理中添加审计功能,实现了在数据读写分离的基础上进行全量sql审计的能力,不需要对数据库架构进行大规模改动。

28、低性能损耗:本专利技术的读写代理方式可以实现对已处理的数据进行抓取转发,避免了对数据库性能的影响。同时,通过无阻塞且无锁的环形数组进行转发缓冲,解决了高流量情况下对数据性能的影响。

29、高可靠性:当转发缓冲写满时,本专利技术选择覆盖允许少部分的数据丢失,从而保证了数据库的高可靠性。

30、操作简便:相对于传输层审计和基于插件的审计方法,本专利技术所提供的方法不需要抓包解析或嵌入内核工作,操作相对简便。

31、下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。

本文档来自技高网...

【技术保护点】

1.一种基于读写代理的全量SQL审计系统,其特征在于,包括API、读写分离代理组件和数据库服务器;其中,所述API和数据库服务器分别连接于所述读写分离代理组件;所述数据库服务器设置有若干个;

2.根据权利要求1所述的基于读写代理的全量SQL审计系统,其特征在于,所述数据库服务器包括数据集群服务器和日志存储服务器。

3.根据权利要求2所述的基于读写代理的全量SQL审计系统,其特征在于,所述数据集群服务器和所述日志存储服务器分别连接于所述读写分离代理组件;

4.根据权利要求3所述的基于读写代理的全量SQL审计系统,其特征在于,所述数据集群服务器中包含若干个数据库。

5.根据权利要求4所述的基于读写代理的全量SQL审计系统,其特征在于,所述SQL执行还包括负载平衡,所述负载平衡用于根据规则将不同的所述数据分发至不同的数据库。

6.根据权利要求5所述的基于读写代理的全量SQL审计系统,其特征在于,所述读写分离代理组件包括连接器和分析器;其中,所述连接器分别连接于所述API和所述分析器;

7.根据权利要求6所述的基于读写代理的全量SQL审计系统,其特征在于,所述审计线程用于接收所述数据,进行审计规则匹配;

8.根据权利要求7所述的基于读写代理的全量SQL审计系统,其特征在于,所述关键信息包括表名、字段名和/或操作类型;

9.一种基于读写代理的全量SQL审计方法,其特征在于,包括:

10.根据权利要求9所述的基于读写代理的全量SQL审计方法,其特征在于,所述关键信息包括表名、字段名和/或操作类型;

...

【技术特征摘要】

1.一种基于读写代理的全量sql审计系统,其特征在于,包括api、读写分离代理组件和数据库服务器;其中,所述api和数据库服务器分别连接于所述读写分离代理组件;所述数据库服务器设置有若干个;

2.根据权利要求1所述的基于读写代理的全量sql审计系统,其特征在于,所述数据库服务器包括数据集群服务器和日志存储服务器。

3.根据权利要求2所述的基于读写代理的全量sql审计系统,其特征在于,所述数据集群服务器和所述日志存储服务器分别连接于所述读写分离代理组件;

4.根据权利要求3所述的基于读写代理的全量sql审计系统,其特征在于,所述数据集群服务器中包含若干个数据库。

5.根据权利要求4所述的基于读写代理的全量sql审计系统,其特征在于,所述sql执行还包括负...

【专利技术属性】
技术研发人员:吕崇新王德勇黄显岚
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1