一种数据库审计方法和设备技术

技术编号:4003697 阅读:427 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据库审计方法和设备,通过应用本发明专利技术的技术方案,能够精确识别数据库操作的内容,可以实现完整的数据库操作行为审计(包括一般SQL语句的审计和使用操作模板访问Oracle数据库的审计),尤其是可以识别通过操作模板访问数据库的操作的内容,可以根据相应的操作模板还原相应的数据库操作内容,并对相应的数据库操作内容进行审计,真实还原每一个用户对数据库的各种操作。

【技术实现步骤摘要】

本专利技术涉及通信
,特别涉及一种数据库审计方法和设备
技术介绍
数据库审计系统是目前数据库安全防护的重要手段,它实时地、智能地解析每一 个用户对Oracle数据库的各种操作,并将审计结果记入相关数据库中,以便管理人员进行 查询、分析等操作,从而加强数据库应用的行为监管,保障数据库系统的正常运营。由于在 金融、电信等行业当中大量使用数据库系统,这种审计需求尤为突出。目前大部分行业内部 的大型数据库都采用了 Oracle公司研制开发的数据库,Oracle的关系数据库是世界第一 个支持SQL语言的数据库,使用的TNS协议较为复杂,驱动协议类型以ODBC和JDBC为主。对于Oracle数据库,常规的数据库操作都是以SQL语句的方式提交给Oracle数 据库进行处理的(比如“select*from tablelwhere age = 28”)。Oracle数据库收到每 一条SQL语句后需要进行语法解析、编译、生成访问方案、数据库引擎执行具体操作等一系 列步骤,占用较多的CPU资源。目前大部分数据库审计系统都可以实现这种SQL语句访问 Oracle数据库的审计。为了降低Oracle数据库的资源消耗,提高Oracle数据库的性能和吞吐量,Oracle 数据库提供了一种使用PreparedStatement模板访问Oracle数据库的方法。使用该模板访 问Oracle数据库时,用户首先定义一个Pr印aredStatement模板,每次访问数据库时只需 要修改变量值即可。Oracle数据库在第一次处理Pr印aredStatement模板时需要进行语法 解析、编译、生成访问方案、数据库引擎执行具体操作等一系列步骤,后续使用同一模板时 直接进行数据库引擎执行具体操作,从而降低了 Oracle数据库的资源消耗,提高了 Oracle 数据库的性能和吞吐量。但是对于这种使用Pr印aredStatement模板访问Oracle数据库 的方法,由于在SQL语句中存在变量绑定,现有的数据库审计系统只能将包含变量名的SQL 语句提取出来,而无法实现变量值的替换。当多个Pr印aredStatement模板交替执行时,对 于非第一次的执行,由于网络报文中不存在SQL语句关键字,现有的数据库审计系统甚至 无法审计出该SQL语句的执行。目前已公开的方案中还没有针对使用Pr印aredStatement 模板访问Oracle数据库的审计方法。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题现有的数据库审计系统只能实现一般SQL语句的审计,不支持使用 PreparedStatement模板访问Oracle数据库的审计方法。
技术实现思路
本专利技术提供一种数据库审计方法和设备,能够精确识别数据库操作的内容,尤其 是通过操作模板访问数据库的操作的内容,并对相应的数据库操作内容进行审计。为达到上述目的,本专利技术一方面提供了一种数据库审计方法,具体包括以下步 骤4识别当前系统所建立的会话中是否包含对数据库的数据库操作会话;如果包含,识别所述对数据库的数据库操作会话中的数据库操作指令;判断所述数据库操作指令中是否存在SQL语句的关键字;如果存在SQL语句的关键字,判断所述数据库操作指令中是否包含变量标识;如果存在变量标识,记录所述数据库操作指令所对应的操作模板编号和对应的操 作模板信息,并在所述包含数据库操作指令的报文中提取变量值替换所述变量标识,还原 所述数据库操作指令的内容,并对所述数据库操作指令进行审计;当所述对数据库的数据库操作会话中后续接收到的数据库操作指令中不包含SQL 语句的关键字时,根据所述数据库操作指令中所携带的操作模板编号,查询对应的操作模 板信息,还原所述数据库操作指令的内容,并对所述数据库操作指令进行审计。优选的,所述识别当前系统所建立的会话中是否包含对数据库的数据库操作会话,具体 为根据DPI识别技术识别当前系统所建立的会话中是否包含对数据库的数据库操 作会话;如果包含,记录所述会话所对应的会话信息和所述会话的驱动协议类型,如果不 包含,放弃对所述会话中的报文进行审计处理。优选的,所述如果存在变量标识,记录所述数据库操作指令所对应的操作模板编号,具体 为当所述会话的驱动协议类型为JDBC驱动时,根据信令码的类型,记录根据会话所 对应的客户端的指令所确定的,或根据所述会话所对应的数据库服务器的指令所确定的所 述数据库操作指令所对应的操作模板编号;当所述会话的驱动协议类型为ODBC驱动时,记录所述会话所对应的数据库服务 器所确定的所述数据库操作指令所对应的操作模板编号。优选的,所述如果存在SQL语句的关键字,判断所述数据库操作指令中是否包含变量标识 之后,还包括如果判断所述数据库操作指令中没有包含变量标识,则根据所述SQL语句的关键 字所对应的操作内容对所述数据库操作指令进行审计。优选的,所述当后续接收到的数据库操作指令中不包含SQL语句的关键字时,根据所述数 据库操作指令中所携带的操作模板编号,查询对应的操作模板信息,还原所述数据库操作 指令的内容,并对所述数据库操作指令进行审计,具体包括当后续接收到的数据库操作指令中不包含SQL语句的关键字时,则在所述后续 接收到的数据库操作指令所对应的报文中获取所述数据库操作指令中包含的操作模板编 号;查询所述操作模板编号所对应的操作模板信息;在所述后续接收到的数据库操作指令所对应的报文中提取变量值,替换所述操作模板信息中所包含的变量标识,还原所述数据库操作指令的内容,并对所述数据库操作指 令进行审计。另一方面,本专利技术还提供了一种数据库审计设备,具体包括识别模块,用于识别当前系统所建立的会话中是否包含对数据库的数据库操作会 话,并在识别到所述对数据库的数据库操作会话时,进一步识别所述对数据库的数据库操 作会话中的数据库操作指令;判断模块,与所述识别模块相连接,用于在所述识别模块识别到所述对数据库的 数据库操作会话中的数据库操作指令时,判断所述数据库操作指令中是否存在SQL语句的 关键字,并在存在SQL语句的关键字时,进一步判断所述数据库操作指令中是否包含变量 标识;记录模块,与所述判断模块相连接,用于在所述判断模块判断存在变量标识时,记 录所述数据库操作指令所对应的操作模板编号和对应的操作模板信息;查询模块,与所述判断模块和所述记录模块相连接,用于在所述判断模块判断不 存在SQL语句的关键字时,根据所述数据库操作指令中所携带的操作模板编号,向所述记 录模块查询对应的操作模板信息;审计模块,与所述记录模块和所述查询模块相连接,用于在所述包含数据库操作 指令的报文中提取变量值,通过所述变量值替换所述记录模块记录的,或所述查询模块查 询的操作模板信息中的变量标识,还原所述数据库操作指令的内容,并对所述数据库操作 指令进行审计。优选的,所述识别模块,具体用于根据DPI识别技术识别当前系统所建立的会话中是否包 含对数据库的数据库操作会话;所述记录模块,进一步与所述识别模块相连接,用于在所述识别模块的识别结果 为包含时,记录所述会话所对应的会话信息和所述会话的驱动协议类型;所述审计模块,进一步与所述识别模块相连接,用于在所述识别模块的识别结果 为不包含,放弃对所述报文进行审计处理。优选的本文档来自技高网
...

【技术保护点】
一种数据库审计方法,其特征在于,具体包括以下步骤:识别当前系统所建立的会话中是否包含对数据库的数据库操作会话;如果包含,识别所述对数据库的数据库操作会话中的数据库操作指令;判断所述数据库操作指令中是否存在SQL语句的关键字;如果存在SQL语句的关键字,判断所述数据库操作指令中是否包含变量标识;如果存在变量标识,记录所述数据库操作指令所对应的操作模板编号和对应的操作模板信息,并在所述包含数据库操作指令的报文中提取变量值替换所述变量标识,还原所述数据库操作指令的内容,并对所述数据库操作指令进行审计;当所述对数据库的数据库操作会话中后续接收到的数据库操作指令中不包含SQL语句的关键字时,根据所述数据库操作指令中所携带的操作模板编号,查询对应的操作模板信息,还原所述数据库操作指令的内容,并对所述数据库操作指令进行审计。

【技术特征摘要】

【专利技术属性】
技术研发人员:邹文宇吴淞
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1