数据库审计的方法和设备的制造方法_2

文档序号:9506187阅读:来源:国知局
成每一所述数据包的待处理状态;随后,基于所述待处理状态,对所述数据包进行相应处理;然后,基于相应处理的结果,对所述环形缓存池进行相应处理。采用了环形缓存池和不同数据包的待处理状态的相应处理相结合的审计方法,从而大大提高了对数据的处理效率,同时,依据不同的数据库协议,只需要修改相应的数据包处理函数,就能够快速开发出其它类型数据库的审计程序,具有一定的扩展性。
【附图说明】
[0072]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0073]图1示出根据本申请一个方面的一种数据库审计部署结构示意图;
[0074]图2示出根据本申请一个方面的一种数据库审计的设备结构示意图;
[0075]图3示出根据本申请另一个方面的一种数据库审计的方法流程示意图;
[0076]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0077]下面结合附图对本申请作进一步详细描述。
[0078]图1示出根据本申请一个方面的一种数据库审计部署结构示意图。通过配置接入交换机将多个用户的请求数据转发到核心交换机的接口,再通过核心交换机对数据库服务器(简称数据库)进行访问,用户数据库审计(Database Administrator,DBA)端是通过镜像端口连接到接入交换机上的,网络监听方式为将交换机流量镜像到数据库审计端上,监控所有用户对数据库的访问并记录,管理员通过核心交换机对数据库进行查询并通过管理端口抓取DBA端中的数据,实现对审计记录的管理与分析。
[0079]本领域技术人员应能理解,所述的数据库审计部署只是数据库审计部署中的一种,仅为举例,本申请所述的数据库审计的方法不限于适合上述所述的数据库审计部署。其他现有的或今后可能出现的数据库审计部署如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0080]图2示出根据本申请一个方面的一种数据库审计的设备结构示意图。该设备1包括:第一装置11、第二装置12、第三装置13和第四装置14。
[0081]其中,第一装置11获取数据包;第二装置12判断所述数据包是否需要写入环形缓存池,将需要写入的数据包写入所述环形缓存池,并生成每一所述数据包的待处理状态;第三装置13基于所述待处理状态,对所述数据包进行相应处理;第四装置14基于相应处理的结果,对所述环形缓存池进行相应处理。
[0082]在此,所述设备1包括但不限于用户设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、1S操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,转出用户设备1还可以是运行于所述用户设备、或用户设备与网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0083]上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,例如所述第一装置11持续获取数据包;所述第二装置12持续判断所述数据包是否需要写入环形缓存池,将需要写入的数据包写入所述环形缓存池,并生成每一所述数据包的待处理状态;第三装置13持续基于所述待处理状态,对所述数据包进行相应处理;第四装置14持续基于相应处理的结果,对所述环形缓存池进行相应处理。
[0084]本申请所述设备1用于数据库审计,本发明将环形数据缓存池和不同数据包的待处理状态的相应处理相结合,避免了频繁的申请内存、释放内存、内存间数据拷贝,提高了数据包解析处理的效率。同时,依据不同的数据库协议,只需要修改相应的数据包处理函数,就能够快速开发出其它类型数据库的审计程序,具有一定的扩展性。
[0085]具体地,第一装置11获取数据包。
[0086]在此,数据库访问模式可以采用“客户端一服务器”模式(c/s模式),其相应的网络协议也是“请求一响应”模式,基于此,每个客户端一服务器连接以会话(ip地址对、端口对)来表示,对连接的协议数据根据协议封装格式对数据进行封装,成为数据包。不同的协议所打包的数据包格式也不同,例如,IP协议数据包包括:版本号、IP包头长度、服务器类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头部校验、源IP地址和目地IP地址等。网络传输发送与接收的数据包通过抓包线程进行获取。当然,本领域技术人员应能理解,上述数据库访问模式仅为举例,其他现有的或今后可能出现的数据库访问模式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0087]具体地,第二装置12判断所述数据包是否需要写入环形缓存池,将需要写入的数据包写入所述环形缓存池,并生成每一所述数据包的待处理状态。在此,环形缓存池为一种数据结构,用来存储通信中发送和接收的数据,是一个先进先出的循环缓存池,使用环形缓存池,能够避免对内存的频繁申请、释放以及内存间的数据拷贝。环形缓存池有一个头指针和一个尾指针,头指针指向环形缓存池中可读的数据,尾指针指向环形缓存池中可写的缓存池,通过移动读指针和写指针可实现缓存池的数据读取和写入。对数据包的缓存使用环形缓存池,每次缓存写入数据的时候,只需要在尾部添加数据,并重置尾指针。由于不同的数据库协议对数据包头部有不同的格式要求,所以可通过包头进行识别,判断获取的数据包是否需要写入环形缓存池,需要写入的数据包写入环形缓存池后返回不同的缓存状态,生成每一个写入环形缓存池的数据包返回对应的缓存状态,即待处理状态,以便后续的处理。
[0088]具体地,第三装置13基于所述待处理状态,对所述数据包进行相应处理。在此,根据生成的每一个写入环形缓存池的数据包对应的待处理状态,对数据包进行相应的处理,例如,当缓存数据满足一个协议数据包时,调用相应的回调函数进行数据处理,处理完毕后,根据之前的缓存状态决定保持、切换、重置回调函数,并返回已经处理的数据长度。
[0089]具体地,第四装置14基于相应处理的结果,对所述环形缓存池进行相应处理。在此,根据对数据包进行相应处理的结果,进行缓存池相应的清理,例如,数据包写入环形缓存池后的待处理状态为状态A,状态A对应的环形缓存池相应的清理工作为按照回调函数处理的数据长度,从环形缓存池的头部清空数据,并重新设置头指针。
[0090]优选地,所述第二装置12用于:判断所述数据包是否合法,当所述数据包不合法时,拒绝处理所述数据包;接着,判断所述数据包是否为分包,将是分包的数据包写入环形缓存池,以进行缓存处理。
[0091]在此,数据库如mysql、sqlserver、DB2、Oracle等,不同的数据库具有不同的数据库的协议,对数据包头部有不同的格式要求,例如,若要审计Oracle数据库,则根据Oracle对数据包包头的要求进行识别判断获取的数据包是否满足Oracle的要求,若满足,则进行下一步的处理,若不满足,则拒绝处理该数据包。接着,对满足Oracle的数据包进行判断是否为分包,基于数据包的包头中的长度域与数据包的长度是否相等来确定数据包是否为分包,如果相等则不是分包,否则为分包。
[0092]优选地,所述数据包的待处理状态包括:第一状态、第二状态、第三状态和第四状态;其中,当将需要写入的数据包写入所述环形缓存池缓存出错时,则所述数据包的待处理状态为第一状态;当将需要写入的数据包写入所述环形缓存池还需要后续拼包时,则所述数据包的待处理状态为第二状态;当将需要写入的数据包写入所述环形缓存池并完成拼包且其后还有后续数据包时,则所述数据包的待处理状态为第三状态;当将需要写入的数据包写入所述环形缓存池拼包结束且其后无后续数据包时,则所述数据包的待处理状态为第四状态。
[0093]在一具体实施例中,识别数据包为分包后,将数据包写入环形缓存池进行缓存处理,从缓存池尾部开始缓存数据,移动尾指针到数据的尾端。完成缓存后返回不同的缓存状态,此时,数据包的缓存状态即为数据包的待处理状态,根据各待处理状态进行下一步的数据包的处理操作,为方便表述,在具体实施例中依次用和“2”代表不同的缓
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1