一种基于进程的数据库审计处理方法和装置制造方法及图纸

技术编号:34497032 阅读:17 留言:0更新日期:2022-08-10 09:17
本申请公开了一种基于进程的数据库审计处理方法和装置,该方法包括:接收待审计的数据包;获取所述数据包所属的会话的会话标识;根据所述会话标识查找与所述会话标识对应的内存池,其中,所述内存池中保存有所述会话的会话信息;从多个进程中选择预定进程,并将所述会话标识对应的内存池和所述数据包提供给所述预定进程,其中,所述多个进程中的每一个进程均用于进行数据库审计,所述每个进程用于对多个会话进行审计并维护多个内存池。通过本申请解决了现有技术中数据库审计系统使用一个进程对一个数据库会话进行审计所导致的审计系统最大并发数受到限制的问题,从而提高了审计系统所支持的最大并发数,在一定程度上提高了审计效率。高了审计效率。高了审计效率。

【技术实现步骤摘要】
一种基于进程的数据库审计处理方法和装置


[0001]本申请涉及到数据库审计领域,具体而言,涉及一种基于进程的数据库审计处理方法和装置。

技术介绍

[0002]数据库审计以安全事件为中心,以全面审计和精确审计为基础,实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。它通过对用户访问数据库行为的记录、分析和汇报,来帮助用户事后生成合规报告、事故追根溯源,同时通过大数据搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
[0003]数据库审计一般通过审计系统来进行。数据库审计系统用于对数据库进行审计,因此,数据库审计系统的运行方式与数据库客户端访问数据库的方式密切相关。一般情况下,数据库的访问行为是多会话访问,这是因为每个数据库客户端在访问数据库的时候均会创建一个连接,创建的该连接视为一个会话,而数据库需要同时响应多个会话的请求。对于数据库来说,数据库客户端与数据库的会话的上下文存在重要的作用。
[0004]考虑到在数据库审计过程中会话上下文的重要性,因此会话信息的维护就变得十分重要。在现有技术中,会使用一个进程来维护一个会话信息,使用一个进程对应处理一个数据库会话的所有流量,以此来保证会话信息的完整性和可持续性。
[0005]由于操作系统存在进程数上限的限制,且在多进程并发的场景下,处理性能会下降。因此,会造成数据库审计系统可处理的最大并发连接数存在限制,且在大并发的场景下,处理性能下降。

技术实现思路

[0006]本申请实施例提供了一种基于进程的数据库审计处理方法和装置,以至少解决现有技术中数据库审计系统使用一个进程对一个数据库会话进行审计所导致的审计系统最大并发数受到限制的问题。
[0007]根据本申请的一个方面,提供了一种基于进程的数据库审计处理方法,包括:接收待审计的数据包,其中,所述数据包是通过数据库客户端向数据库发送的数据包,所述数据包用于对所述数据库进行操作;获取所述数据包所属的会话的会话标识;根据所述会话标识查找与所述会话标识对应的内存池,其中,所述内存池中保存有所述会话的会话信息;从多个进程中选择预定进程,并将所述会话标识对应的内存池和所述数据包提供给所述预定进程,其中,所述预定进程从所述内存池中获取会话信息以及根据所述会话信息对所述数据包进行审计,所述多个进程中的每一个进程均用于进行数据库审计,所述每个进程用于对多个会话进行审计并维护多个内存池,其中,每个会话均唯一对应一个保存该会话的会话信息的内存池。
[0008]进一步地,在根据所述会话标识未查找与所述会话标识对应的内存池的情况下,从所述多个进程中选择预定进程包括:在根据所述会话标识未查找与所述会话标识对应的内存池的情况下,确定所述数据包所属的会话为新会话;从所述多个进程中选择负荷压力最小的进程作为所述预定进程,并从所述预定进程对应的尚未使用的内存池中为所述会话分配一个内存池;将所述预定进程作为对所述会话的数据包进行审计的进程,并保存所述会话的标识与分配的内存池的对应关系。
[0009]进一步地,从所述多个进程选择预定进程包括:获取查找到的所述会话标识对应的内存池;获取维护所述会话标识对应的内存池的进程,并将维护所述会话标识对应的内存池的进程作为所述预定进程。
[0010]进一步地,在从所述多个进程中选择所述预定进程之后,所述方法还包括:获取所述预定进程的负荷压力;在所述负荷压力大于阈值的情况下,从所述多个进程中选择出负荷压力最小的进程;将所述预定进程中未审计的数据包以及与未审计的数据包所属会话对应的内存池发送给选择出的负荷压力最小的进程,由选择出的负荷压力最小的进程对未处理的数据包进行审计。
[0011]进一步地,获取所述数据包所属的会话的会话标识包括:获取所述数据包来源的数据库客户端的网络地址和端口号;将网络地址和端口号进行哈希运算得到哈希值;将所述哈希值作为所述数据包所属会话的会话标识。
[0012]根据本申请的另一个方面,还提供了一种基于进程的数据库审计处理装置,包括:接收模块,用于接收待审计的数据包,其中,所述数据包是通过数据库客户端向数据库发送的数据包,所述数据包用于对所述数据库进行操作;获取模块,用于获取所述数据包所属的会话的会话标识;查找模块,用于根据所述会话标识查找与所述会话标识对应的内存池,其中,所述内存池中保存有所述会话的会话信息;处理模块,用于从多个进程中选择预定进程,并将所述会话标识对应的内存池和所述数据包提供给所述预定进程,其中,所述预定进程从所述内存池中获取会话信息以及根据所述会话信息对所述数据包进行审计,所述多个进程中的每一个进程均用于进行数据库审计,所述每个进程用于对多个会话进行审计并维护多个内存池,其中,每个会话均唯一对应一个保存该会话的会话信息的内存池。
[0013]进一步地,所述处理模块用于:在根据所述会话标识未查找与所述会话标识对应的内存池的情况下,确定所述数据包所属的会话为新会话;从所述多个进程中选择负荷压力最小的进程作为所述预定进程,并从所述预定进程对应的尚未使用的内存池中为所述会话分配一个内存池;将所述预定进程作为对所述会话的数据包进行审计的进程,并保存所述会话的标识与分配的内存池的对应关系。
[0014]进一步地,所述处理模块用于:获取查找到的所述会话标识对应的内存池;获取维护所述会话标识对应的内存池的进程,并将维护所述会话标识对应的内存池的进程作为所述预定进程。
[0015]进一步地,所述处理模块还用于:获取所述预定进程的负荷压力;在所述负荷压力大于阈值的情况下,从所述多个进程中选择出负荷压力最小的进程;将所述预定进程中未审计的数据包以及与未审计的数据包所属会话对应的内存池发送给选择出的负荷压力最小的进程,由选择出的负荷压力最小的进程对未处理的数据包进行审计。
[0016]进一步地,所述获取模块用于:获取所述数据包来源的数据库客户端的网络地址
和端口号;将网络地址和端口号进行哈希运算得到哈希值;将所述哈希值作为所述数据包所属会话的会话标识。在本申请实施例中,采用了接收待审计的数据包,其中,所述数据包是通过数据库客户端向数据库发送的数据包,所述数据包用于对所述数据库进行操作;获取所述数据包所属的会话的会话标识;根据所述会话标识查找与所述会话标识对应的内存池,其中,所述内存池中保存有所述会话的会话信息;从多个进程中选择预定进程,并将所述会话标识对应的内存池和所述数据包提供给所述预定进程,其中,所述预定进程从所述内存池中获取会话信息以及根据所述会话信息对所述数据包进行审计,所述多个进程中的每一个进程均用于进行数据库审计,所述每个进程用于对多个会话进行审计并维护多个内存池,其中,每个会话均唯一对应一个保存该会话的会话信息的内存池。通过本申请解决了现有技术中数据库审计系统使用一个进程对一个数据库会话进行审计所导致的审计系统最大并发数受到限制的问题,从而提高了审计系统所支持的最大并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于进程的数据库审计处理方法,其特征在于,包括:接收待审计的数据包,其中,所述数据包是通过数据库客户端向数据库发送的数据包,所述数据包用于对所述数据库进行操作;获取所述数据包所属的会话的会话标识;根据所述会话标识查找与所述会话标识对应的内存池,其中,所述内存池中保存有所述会话的会话信息;从多个进程中选择预定进程,并将所述会话标识对应的内存池和所述数据包提供给所述预定进程,其中,所述预定进程从所述内存池中获取会话信息以及根据所述会话信息对所述数据包进行审计,所述多个进程中的每一个进程均用于进行数据库审计,所述每个进程用于对多个会话进行审计并维护多个内存池,其中,每个会话均唯一对应一个保存该会话的会话信息的内存池。2.根据权利要求1所述的方法,其特征在于,在根据所述会话标识未查找与所述会话标识对应的内存池的情况下,从所述多个进程中选择预定进程包括:在根据所述会话标识未查找与所述会话标识对应的内存池的情况下,确定所述数据包所属的会话为新会话;从所述多个进程中选择负荷压力最小的进程作为所述预定进程,并从所述预定进程对应的尚未使用的内存池中为所述会话分配一个内存池;将所述预定进程作为对所述会话的数据包进行审计的进程,并保存所述会话的标识与分配的内存池的对应关系。3.根据权利要求1所述的方法,其特征在于,从所述多个进程选择预定进程包括:获取查找到的所述会话标识对应的内存池;获取维护所述会话标识对应的内存池的进程,并将维护所述会话标识对应的内存池的进程作为所述预定进程。4.根据权利要求3所述的方法,其特征在于,在从所述多个进程中选择所述预定进程之后,所述方法还包括:获取所述预定进程的负荷压力;在所述负荷压力大于阈值的情况下,从所述多个进程中选择出负荷压力最小的进程;将所述预定进程中未审计的数据包以及与未审计的数据包所属会话对应的内存池发送给选择出的负荷压力最小的进程,由选择出的负荷压力最小的进程对未处理的数据包进行审计。5.根据权利要求1至4中任一项所述的方法,获取所述数据包所属的会话的会话标识包括:获取所述数据包来源的数据库客户端的网络地址和端口号;将网络地址和端口号进行哈希运算得到哈希值;将所述哈希值作为所述...

【专利技术属性】
技术研发人员:刘晓韬李彦君
申请(专利权)人:北京安华金和科技有限公司
类型:发明
国别省市:

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

1