一种用于数据库审计系统的SQL语句解析方法和系统技术方案

技术编号:10007951 阅读:229 留言:1更新日期:2014-05-07 14:11
本发明专利技术提供了一种用于数据审计系统的SQL语句解析方法和系统。所述方法包括:接收输入的SQL语句;识别SQL语句中的词、符号和序列表示中的至少一者;将识别出的词、符号和序列表示中的至少一者与预定的语法规则进行比较,当识别出的词、符号和序列表示中的至少一者与预定的语法规则中的一个语法规则匹配时,则根据所述预定的语法规则中的一个语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;当识别出的词、符号和/或序列表示与预定的语法规则不匹配时,不对SQL语句进行语义解析。利用该方法和系统,能够准确识别SQL语句操作类型、操作的数据库表名、列名等对象信息,并且与正则匹配方式相比,不需要编写匹配规则,识别效率更高。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种用于数据审计系统的SQL语句解析方法和系统。所述方法包括:接收输入的SQL语句;识别SQL语句中的词、符号和序列表示中的至少一者;将识别出的词、符号和序列表示中的至少一者与预定的语法规则进行比较,当识别出的词、符号和序列表示中的至少一者与预定的语法规则中的一个语法规则匹配时,则根据所述预定的语法规则中的一个语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;当识别出的词、符号和/或序列表示与预定的语法规则不匹配时,不对SQL语句进行语义解析。利用该方法和系统,能够准确识别SQL语句操作类型、操作的数据库表名、列名等对象信息,并且与正则匹配方式相比,不需要编写匹配规则,识别效率更高。【专利说明】—种用于数据库审计系统的SQL语句解析方法和系统
本专利技术涉及一种用于数据库审计系统的SQL语句解析方法和系统。
技术介绍
数据库审计产品近年来成为网络安全行业研究热点,数据库审计产品通过旁路抓取数据库访问数据包,对其中的SQL语句进行提取和记录。但是各种数据库网络协议中只传输SQL语句,并不传输SQL语句的相关操作信息,如SQL操作的数据库对象名、SQL操作类型等信息。这就造成数据库审计产品只能记录SQL语句,不能准确记录SQL操作的对象、操作类型等。一些数据库审计产品通过正则匹配方法识别SQL语句的操作类型和操作的对象,但是这种正则匹配方式只能进行查找操作和分析简单的SQL语句,如果SQL语句复杂度较高,那么正则方法不能实现SQL语句的解析。并且,采用正则匹配方式时,必须要编写正则匹配规则,识别效率不太高。【
技术实现思路
】针对现有技术中存在的上述问题,本专利技术提供了一种用于数据审计系统的SQL语句解析方法,用于对SQL语句的含义进行准确地分析,从而用于数据库审计和后续的分析。本专利技术提供了一种用于数据审计系统的SQL语句解析方法,其中,该方法包括:a)接收输入的SQL语句;b)识别SQL语句中的词、符号和序列表示的组合;c)将识别出的词、符号和序列表示的组合与预定的语法规则中的各个语法规则进行比较,当识别出的词、符号和序列表示的组合与预定的语法规则中的一个语法规则匹配时,则根据所述预定的语法规则中匹配的语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;当识别出的词、符号和序列表示的组合与预定的语法规则中的任何语法规则都不匹配时,不对SQL语句进行语义解析。同时,本专利技术还提供了一种用于数据审计系统的SQL语句解析系统,其中,该系统包括:接收模块,用于接收输入的SQL语句;识别模块,用于识别SQL语句中的词、符号和序列表示的组合;解析模块,用于将识别出的词、符号和序列表示的组合与预定的语法规则中的各个语法规则进行比较,当识别出的词、符号和序列表示的组合与预定的语法规则中的一个语法规则匹配时,则根据所述预定的语法规则中匹配的语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;当识别出的词、符号和序列表示的组合与预定的语法规则中的任何语法规则都不匹配时,不对SQL语句进行语义解析。利用本专利技术提供的用于数据审计系统的SQL语句解析方法和系统,能够准确识别SQL语句操作类型、操作的数据库表名、列名等对象信息,并且与正则匹配方式相比,不需要编写匹配规则,识别效率更高。【专利附图】【附图说明】图1是根据本专利技术的用于数据审计系统的SQL语句解析方法的流程图;图2是根据本专利技术的用于数据审计系统的SQL语句解析系统的示意结构图。【具体实施方式】下面结合附图,详细描述本专利技术的【具体实施方式】。图1是根据本专利技术的用于数据审计系统的SQL语句解析方法的流程图。参考图1,本专利技术提供了一种用于数据审计系统的SQL语句解析方法,其中,该方法包括:a)接收输入的SQL语句;b)识别SQL语句中的词、符号和序列表示的组合;c)将识别出的词、符号和序列表示的组合与预定的语法规则中的各个语法规则进行比较,当识别出的词、符号和序列表示的组合与预定的语法规则中的一个语法规则匹配时,则根据所述预定的语法规则中匹配的语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;当识别出的词、符号和序列表示的组合与预定的语法规则中的任何语法规则都不匹配时,不对SQL语句进行语义解析。在步骤a)中,首先接收输入的SQL语句。在步骤b)中,对SQL语句进行识别。优选的,可以通过对所述SQL语句中的字符进行逐个扫描,来识别SQL语句中的词、符号和序列表示的组合。所述词例如“select”等有实际意义的词,所述符号例如“ + ”和等符号,所述序列表示诸如“from”等附在表示具体操作的词语之后的没有实际意义的词。在步骤c)中,将识别出的词、符号和序列表示的组合与预定的语法规则中的各个语法规则进行比较,以判断识别出的词、符号和序列表示的组合是否与预定的语法规则中的一个语法规则匹配。通常,在计算机系统中,预定的语法规则以机器语言形式表示,例如以二进制形式表示。在这种情况下,所述步骤b)还将识别出的词、符号和序列表示的组合转化为机器语言标记,例如转化成二进制形式表示的标记。从而,在所述步骤c)中,通过将所述机器语言标记与机器语言形式的预定的语法规则中的各个语法规则进行比较,来判断识别出的词、符号和序列表示的组合是否与预定的语法规则中的一个语法规则匹配。如果匹配,则根据所述预定的语法规则中的一个语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;如果不匹配,不对SQL语句进行语义解析。优选的,所述机器语言形式的预定的语法规则可以以语法分析树形式存储。语法分析树的各级分支存储着各个预定的语法。可以通过将识别出的词、符号和序列表示的组合与语法分析树的各级分支上的各个预定语法规则进行比较,来寻找匹配的预定语法规则。根据一种优选实施方式,在所述步骤C),当识别出的词、符号和序列表示的组合与预定的语法规则中的一个语法规则匹配时,输出所确定的所述SQL语句的操作类型、操作字段和表名中的至少一者,例如可以通过显示器输出所述SQL语句的操作类型、操作字段和表名以供用户进行参考分析。识别出的词、符号和序列表示的组合与预定的语法规则不匹配,有可能是因为SQL语句还没有输入完整,用户可能还会继续进行输入SQL语句。因而,根据另一种优选实施方式,当识别出的词、符号和序列表示的组合与预定的语法规则不匹配时,返回到步骤a),等待继续接收输入的SQL语句,以将后续接收的SQL语句结合在一起进行解析,这样,就可以接收到完整的SQL语句并进行解析。如果在大于等于预定的时间期间内没有接收输入的SQL语句,且识别出的词、符号和序列表示的组合与预定的语法规则中的任何语法规则都不匹配,则表示SQL语句解析失败,此时可以将表示解析失败的信息作为解析结果输出。下面,以SQL语句“select A from TABLE”为例,来进一步描述本专利技术提供的用于数据审计系统的SQL语句解析方法的流程。首先,接收到的SQL语句“select A fromTABLE”。对该SQL语句中的字符逐个扫描,识别出词“ select ”、词“A”、序列表示“from”和词“TABLE”。可以将这些词和序列表示转化成机器语言标记,诸如二进制本文档来自技高网
...

【技术保护点】
一种用于数据审计系统的SQL语句解析方法,其中,该方法包括:a)接收输入的SQL语句;b)识别SQL语句中的词、符号和序列表示的组合;c)将识别出的词、符号和序列表示的组合与预定的语法规则中的各个语法规则进行比较,当识别出的词、符号和序列表示的组合与预定的语法规则中的一个语法规则匹配时,则根据所述预定的语法规则中匹配的语法规则确定所述SQL语句的操作类型、操作字段和表名中的至少一者;当识别出的词、符号和序列表示的组合与预定的语法规则中的任何语法规则都不匹配时,不对SQL语句进行语义解析。

【技术特征摘要】

【专利技术属性】
技术研发人员:张凤羽
申请(专利权)人:北京天融信软件有限公司北京天融信网络安全技术有限公司北京天融信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有1条评论
  • 来自[北京市电信互联网数据中心] 2015年03月10日 01:44
    0
1