Sql语句的处理方法及系统的制作方法

文档序号:6358085阅读:350来源:国知局
专利名称: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语句的理解;同时,以简洁的方式表示出数据库操作权限意义;并且,提供了一种结构化的SQL语句的表示。第二、本发明的提取的数据库摘要,可以有效的用于学习用户权限、对海量SQL语句进行归并处理和对SQL语句进行分类等领域。


图1为本发明SQL语句的处理方法实施例的步骤流程图;图2为本发明SQL语句的处理方法另一实施例的步骤流程图;图3为本发明SQL语句的处理方法另一实施例的步骤流程图;图4为本发明SQL语句的处理系统另一实施例的结构框图;图5为本发明SQL语句的处理系统另一实施例的结构框图;图6为本发明SQL语句的处理系统实施例的结构框图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。SQL语句的处理方法实施例实施例一参照图1,图1为本发明SQL语句的处理方法实施例的步骤流程图,包括如下步骤 步骤S110,构建SQL语法树;步骤S120,借助词法分析,提取操作类型及数据库对象,每一操作类型及数据库对象组成一个谓宾对;步骤S130,按照执行的顺序对多个谓宾对进行排序;步骤S140,基于所述数据库操作摘要,进行包括用户权限的学习和对海量SQL语句进行归并处理的操作。下面对上述各个步骤进行进一步的说明。在步骤S130中,执行的顺序是指SQL语句被编译后的指令在数据库中的执行的顺序。参照下面的例子对排序进行理解。SELECT*FR0M TABLEl UNION SELECT * FROM TABLE2 的执行顺序是SELECT*FR0M TABLElSELECT*FR0M TABLE2下面,举例说明在步骤S140中,基于数据库操作摘要学习用户权限。例如,经过对数据库系统中的某个用户的SQL摘要的统计,可以得出如下形式的数据
权利要求
1.一种SQL语句的处理方法,其特征在于,所述方法包括解析步骤,将SQL语句解析为数据库操作摘要,所述数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。
2.根据权利要求1所述的SQL语句的处理方法,其特征在于, 所述解析步骤为构建SQL语法树,借助词法解析及语法分析,提取操作类型及数据库对象,组成谓宾对,按照执行的顺序排序。
3.根据权利要求1所述的SQL语句的处理方法,其特征在于, 所述解析步骤为通过词法分析,进行字符串扫描,获取数据库操作类型的关键字,将所述关键字作为数据库操作类型,通过提取字符串后面的词段作为数据库对象部分,将数据库操作类型与数据库对象匹配配对后,按执行顺序排序。
4.根据权利要求1所述的SQL语句的处理方法,其特征在于, 所述解析步骤为确定提取数据库SQL语句操作的信息来源,根据上下文, 将SQL语句解析为所述数据库操作类型与数据库对象。
5.一种SQL语句的处理系统,其特征在于,包括解析模块,用于将SQL语句解析为数据库操作摘要,所述数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。
6.根据权利要求5所述的SQL语句的处理系统,其特征在于, 所述解析模块用于构建SQL语法树,借助词法解析及语法分析,提取操作类型及数据库对象,组成谓宾对,按照执行的顺序排序。
7.根据权利要求5所述的SQL语句的处理系统,其特征在于, 所述解析模块用于进行字符串扫描,获取数据库操作类型的关键字,将所述关键字作为数据库操作类型, 通过提取字符串后面的词段作为数据库对象部分,将数据库操作类型与数据库对象匹配配对后,按执行顺序排序。
8.根据权利要求5所述的SQL语句的处理系统,其特征在于, 所述解析模块为确定提取数据库SQL语句操作的信息来源,根据上下文, 将SQL语句解析为所述数据库操作类型与数据库对象。
全文摘要
本发明公开了一种SQL语句的处理方法及系统。该方法为将SQL语句解析为数据库操作摘要,所述数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。本发明从SQL语句中提取数据库操作和操作对象的组合,即有序的谓宾对,可以更好的表示出对SQL语句的理解;同时,以简洁的方式表示出数据库操作权限意义;并且,提供了一种结构化的SQL语句的表示。
文档编号G06F17/30GK102156740SQ201110094710
公开日2011年8月17日 申请日期2011年4月15日 优先权日2011年4月15日
发明者于海涛, 常乐, 张佃, 徐亚非, 曲明, 杨文勃, 陈浙一 申请人:国都兴业信息审计系统技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1