一种结构化查询语言语句的拦截处理方法及装置与流程

文档序号:32033678发布日期:2022-11-03 02:34阅读:33来源:国知局
1.本发明涉及数据库
技术领域
:,具体涉及一种结构化查询语言语句的拦截处理方法及装置。
背景技术
::2.数据库是存放数据的仓库,有着广泛的应用。结构化查询语言(structuredquerylanguage,简称sql)用于对数据库进行数据查询,不同的数据库产品所采用的sql语句会存在差异。3.目前开源及商业数据库产品已经超过200款,对于单个企业可能会使用多个款数据库产品。不规范的sql语句容易导致数据库性能的下降,为了提高数据库的性能,会对应用服务器发送到数据库的sql语句进行拦截,以拦截不规范的sql语句,现有的实现方式都是基于数据库内核或外围工具根据用户配置的sql清单实施拦截,需要为不同的数据库产品设计不同的拦截方案,实施成本较高。技术实现要素:4.针对现有技术中的问题,本发明实施例提供一种结构化查询语言语句的拦截处理方法及装置,能够至少部分地解决现有技术中存在的问题。5.第一方面,本发明提出一种结构化查询语言语句的拦截处理方法,包括:6.拦截结构化查询语言语句;7.解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;8.若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句。9.第二方面,本发明提供一种结构化查询语言语句的拦截处理装置,包括:10.拦截模块,用于拦截结构化查询语言语句;11.解析模块,用于解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;12.拒绝模块,用于在根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题之后,拒绝所述结构化查询语言语句。13.第三方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述结构化查询语言语句的拦截处理方法。14.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述结构化查询语言语句的拦截处理方法。15.第五方面,本发明提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述结构化查询语言语句的拦截处理方法。16.本发明实施例提供的结构化查询语言语句的拦截处理方法及装置,拦截结构化查询语言语句;解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句,适用于不同数据库产品的sql语句,无需针对每个数据库产品设计拦截方案,降低了成本。附图说明17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:18.图1是本发明第一实施例提供的结构化查询语言语句的拦截处理方法的流程示意图。19.图2是本发明第二实施例提供的结构化查询语言语句的拦截处理方法的流程示意图。20.图3是本发明第三实施例提供的sql语句对应的语法树的结构示意图。21.图4是本发明第四实施例提供的结构化查询语言语句的拦截处理方法的流程示意图。22.图5是本发明第五实施例提供的结构化查询语言语句的拦截处理装置的结构示意图。23.图6是本发明第六实施例提供的结构化查询语言语句的拦截处理装置的结构示意图。24.图7是本发明第七实施例提供的结构化查询语言语句的拦截处理装置的结构示意图。25.图8是本发明第八实施例提供的结构化查询语言语句的拦截处理装置的结构示意图。26.图9是本发明第九实施例提供的结构化查询语言语句的拦截处理装置的结构示意图。27.图10是本发明第十实施例提供的电子设备的实体结构示意图。具体实施方式28.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。本技术中技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。本技术实施例中的用户信息均是通过合法合规途径获得,并且对用户信息的获取、存储、使用、处理等经过客户授权同意的。29.下面以拦截平台作为执行主体为例,对本发明实施例提供的结构化查询语言语句的拦截处理方法的具体实现过程进行说明。其中,拦截平台可以为服务器或者服务器集群,根据实际需要进行设置,本发明实施例不做限定。30.图1是本发明第一实施例提供的结构化查询语言语句的拦截处理方法的流程示意图,如图1所示,本发明实施例提供的结构化查询语言语句的拦截处理方法包括:31.s101、拦截结构化查询语言语句;32.具体地,应用服务器向数据库服务器发送sql语句,拦截平台可以拦截sql语句。33.例如,应用服务器向数据库服务器发送查询请求,查询请求包括sql查询语句。拦截平台可以拦截所述查询请求,从而拦截sql查询语句。34.s102、解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;35.具体地,所述拦截平台在拦截sql语句之后,可以解析所述sql语句,生成所述sql语句对应的语法树。通过语法树可以屏蔽不同数据库产品的sql语句的差异。36.例如,可以通过druid解析引擎对sql语句解析,生成sql语句对应的语法树。37.s103、若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句。38.具体地,所述拦截平台根据所述结构化查询语言语句对应的语法树以及拦截规则,判断所述结构化查询语言语句是否存在问题,如果所述结构化查询语言语句存在问题,那么拒绝所述结构化查询语言语句,即不会将所述sql语句发送给数据库服务器,可以向所述应用服务器返回所述sql语句存在问题的提示信息。如果所述结构化查询语言语句不存在问题,那么可以将所述sql语句发送给数据库服务器。其中,所述拦截规则是预设的,根据实际需要进行设置,本发明实施例不做限定。39.例如,可以根据sql的开发规范,设置拦截规则。40.本发明实施例提供的结构化查询语言语句的拦截处理方法,拦截结构化查询语言语句;解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句,适用于不同数据库产品的sql语句,无需针对每个数据库产品设计拦截方案,降低了成本。41.在上述各实施例的基础上,进一步地,若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题包括:42.若判断获知所述结构化查询语言语句对应的语法树与所述拦截规则包括的任何一个拦截条件匹配,则确定所述结构化查询语言语句存在问题;其中,所述拦截规则包括多个拦截条件。43.具体地,所述拦截规则包括多个拦截条件。拦截条件可以是通用拦截条件,适用于对不同数据库产品的sql语句进行拦截。拦截条件可以针对相同场景的不同书写方式的sql语句进行拦截,以避免相同场景的问题sql语句反复出现。拦截条件可以针对违反开发规范的sql语句,提前规避问题sql语句,提高数据库服务的连续性和稳定性。44.对于所述拦截规则包括的每个拦截条件,所述拦截平台判断所述结构化查询语言语句对应的语法树是否与拦截条件匹配,如果所述结构化查询语言语句对应的语法树与拦截条件匹配,那么确定所述结构化查询语言语句存在问题。如果所述结构化查询语言语句对应的语法树与所述拦截规则包括的所有拦截条件都不匹配,那么确定所述结构化查询语言语句不存在问题。其中,所述拦截规则包括的拦截条件根据实际需要进行设置,本发明实施例不做限定。45.图2是本发明第二实施例提供的结构化查询语言语句的拦截处理方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述若判断获知所述结构化查询语言语句对应的语法树与所述拦截规则包括的任何一个拦截条件匹配包括:46.s201、根据所述拦截条件包括的条件信息,从所述结构化查询语言语句对应的语法树中查询到所述条件信息对应的信息;47.具体地,所述拦截平台获取所述拦截条件包括的条件信息,然后根据所述条件信息从所述结构化查询语言语句对应的语法树中查询与所述条件信息对应的信息。其中,条件信息用于从结构化查询语言语句对应的语法树中进行信息查询。可以在设置拦截条件时指定拦截条件中的条件信息。48.例如,sql的开发规范中包括禁止查询语句中有超过两个表做表连接操作,相应地,可以设置一个拦截条件:sql语句涉及的表连接操作的数据表数量大于等于3。上述拦截条件中的表连接操作为条件信息。49.s202、若判断获知所述条件信息对应的信息满足所述拦截条件,则确定所述结构化查询语言语句对应的语法树与所述拦截条件匹配。50.具体地,所述拦截平台判断所述条件信息对应的信息是否满足所述拦截条件,如果所述条件信息对应的信息满足所述拦截条件,那么确定所述sql语句对应的语法树与所述拦截条件匹配。如果所述条件信息对应的信息不满足所述拦截条件,那么确定所述sql语句对应的语法树与所述拦截条件不匹配。51.例如,拦截平台拦截了两条不同数据库的sql语句,oracle数据库的sql语句a如下:52.select*53.fromtable1a,table2b,table3c54.wherea.id=b.id(+)55.anda.name=c.name(+);56.postgresql数据库的sql语句b如下:57.select*58.fromtable1a,59.leftjointable2bona.id=b.id60.leftjointable3cona.name=c.name;61.上述sql语句a和sql语句b虽然语句不同,但是经过解析生成对应的语法树之后,sql语句a对应的语法树和sql语句b对应的语法树相同,如图3所示。62.拦截条件为sql语句涉及的表连接操作的数据表数量大于等于3。拦截平台从拦截条件中获得条件信息为表连接操作。图3中,seqscan表示表连接操作,根据条件信息表连接操作从图3所示的语法树中,可以查询获得3个表连接操作,分别在节点3、节点5和节点7,节点3对应的实体名称为table1asa,节点5对应的实体名称为table2asb,节点7对应的实体名称为table3asc,可以确定sql语句涉及的表连接操作的数据表数量为3。条件信息表连接操作对应的信息为表连接操作的数据表数量3,由于表连接操作的数量3满足上述拦截条件,所以sql语句a和sql语句b都与上述拦截条件匹配,拦截平台会拒绝sql语句a和sql语句b。通过本发明实施例提供的结构化查询语言语句的拦截处理方法,能够对不同的数据库产品的sql语句进行拦截,无需根据不同的数据库产品设计不同的拦截方案,提高了通用性。63.图4是本发明第四实施例提供的结构化查询语言语句的拦截处理方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,所述若判断获知所述结构化查询语言语句对应的语法树与所述拦截规则包括的任何一个拦截条件匹配包括:64.s401、根据所述拦截条件包括的基本信息,从所述结构化查询语言语句对应的语法树中查询到所述基本信息对应的信息;其中,所述拦截条件包括基本信息和关键信息;65.具体地,所述拦截平台获取所述拦截条件包括的基本信息,然后根据所述基本信息从所述结构化查询语言语句对应的语法树中查询与所述条件信息对应的信息。其中,基本信息用于从结构化查询语言语句对应的语法树中进行信息查询。所述拦截条件包括基本信息和关键信息。可以在设置拦截条件时指定拦截条件中的基本信息和关键信息。所述基本信息和所述关键信息根据实际需要进行设置,本发明实施例不做限定。66.例如,sql的开发规范中包括禁止数据表的索引字段的长度超过60字节,相应地,可以设置一个拦截条件:sql语句中包括的数据表的索引字段的长度大于60字节。上述拦截条件中数据表为基本信息,索引字段为关键信息。67.s402、根据所述基本信息对应的信息以及所述关键信息,从所述结构化查询语言语句对应的数据库的元数据信息中查询获得所述关键信息对应的数据;68.具体地,所述拦截平台在获得所述基本信息对应的信息和所述关键信息之后,可以根据所述基本信息对应的信息以及所述关键信息,查询所述结构化查询语言语句对应的数据库的元数据信息,获得所述关键信息对应的数据。关键信息用于从元数据信息中查询数据。69.其中,为了数据库的元数据信息查询的方便,可以将数据库的元数据信息预先存储到拦截平台。由于本发明实施例提供的结构化查询语言语句的拦截处理方法针对不同的数据库都适用,而不同的数据库的元数据信息是可以存在差别的,所以应用服务器在向数据库服务器发送sql语句的同时,可以携带数据库标识。拦截平台可以根据数据库标识确定结构化查询语言语句对应的数据库。70.s403、若判断获知所述关键信息对应的数据满足所述拦截条件,则确定所述结构化查询语言语句对应的语法树与所述拦截条件匹配。71.具体地,所述拦截平台判断所述关键信息对应的数据是否满足所述拦截条件,如果所述关键信息对应的数据满足所述拦截条件,那么确定所述结构化查询语言语句对应的语法树与所述拦截条件匹配。如果所述关键信息对应的数据不满足所述拦截条件,那么确定所述结构化查询语言语句对应的语法树与所述拦截条件不匹配。72.例如,拦截平台拦截一条sql语句c,sql语句c解析后生成的对应的语法树涉及数据表t1。73.拦截条件为sql语句中包括的数据表的索引字段的长度大于60字节。拦截平台从上述拦截条件中获取到基本信息:数据表,以及关键信息:索引字段的长度。根据数据表从sql语句c对应的语法树中获得数据表t1,再根据数据表t1以及索引字段的长度在sql语句c对应的数据库的元数据信息中查询获得数据表t1的索引字段coll的长度为100字节。由于数据表t1的索引字段的长度100字节大于60字节,满足上述拦截条件,所以sql语句c与上述拦截条件匹配,拦截平台会拒绝sql语句c。通过本发明实施例提供的结构化查询语言语句的拦截处理方法,能够提前发现sql语句存在的潜在问题,提高了数据库服务的连续性和稳定性。74.在上述各实施例的基础上,进一步地,所述结构化查询语言语句对应的数据库的元数据信息是预先获得的。75.具体地,为了数据库的元数据信息查询的方便,可以将所述sql语句对应的数据库的元数据信息,预先存储到拦截平台。不同数据库的元数据信息可以通过数据库标识进行区分。76.在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语句的拦截处理方法还包括:77.记录存在问题的结构化查询语言语句的相关信息。78.具体地,所述拦截平台在判断获知所述结构化查询语言语句存在问题之后,可以记录存在问题的结构化查询语言语句的相关信息。其中,所述相关信息包括但不限于拦截时间、sql语句、确定sql语句存在问题的拦截规则、发送sql语句的应用服务器ip地址和端口号等信息。79.在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语句的拦截处理方法还包括:80.定期将存在问题的结构化查询语言语句的相关信息整理成拦截报表进行上报。81.具体地,所述拦截平台定期上报拦截报表,以供开发人员查看,以便于对存在问题的sql语句进行整改。拦截报表是基于存在问题的结构化查询语言语句的相关信息生成的。其中,定期根据实际需要进行设置,比如1天一次或者一周一次。82.例如,表1显示了拦截报表的部分信息,包括报警信息项和报警信息。报警信息项包括发生时间、违反的规范条款、应用服务器ip地址、数据库url、数据库连接用户、数据库连接用户密码、被拦截sql语句。报警信息为上述各个报警信息项对应的信息。83.表1拦截报表[0084][0085][0086]在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语句的拦截处理方法还包括:[0087]在解析所述结构化查询语言语句之前,若判断获知拒绝结构化查询语言语句库中存在与所述结构化查询语言语句匹配的结构化查询语言语句,则直接拒绝所述结构化查询语言语句;其中,所述拒绝结构化查询语言语句库包括已经拒绝的结构化查询语言语句。[0088]具体地,所述拦截平台在解析所述结构化查询语言语句之前,将拦截的sql语句与拒绝库中的已经拒绝的sql语句进行比较,如果拒绝库中的一条已经拒绝的sql语句与拦截的sql语句相同,那么无需进行后续的解析和判断过程,直接拒绝所述sql语句。将当前拦截的sql语句与已经拒绝的sql语句进行比较,能够提高存在问题的sql语句的识别效率。[0089]在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语句的拦截处理方法还包括:[0090]在所述若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题之前,若判断获知语法树库中存在与所述结构化查询语言语句对应的语法树相同的语法树,则直接拒绝所述结构化查询语言语句;其中,所述语法树库包括已经拒绝的结构化查询语言语句对应的语法树。[0091]具体地,所述拦截平台在根据所述结构化查询语言语句对应的语法树以及拦截规则判断所述sql语句是否存在问题之前,将拦截的sql语句对应的语法树与语法树库中的语法树进行比较,如果语法树库中的存在一个语法树与拦截的sql语句对应的语法树相同,那么直接拒绝所述sql语句。其中,所述语法树库包括已经拒绝的结构化查询语言语句对应的语法树。将当前拦截的sql语句对应的语法树与已经拒绝的sql语句对应的语法树进行比较,能够提高存在问题的sql语句的识别效率。[0092]在oracle数据库中,sql语句d和sql语句e是的查询结果是相同的,但是两个查询语句涉及表连接的表数目已经达到三个。[0093]sql语句d如下所示:[0094]select*[0095]fromtable1a,table2b,table3c[0096]wherea.id=b.id(+)[0097]anda.name=c.name(+);[0098]sql语句e如下所示:[0099]select*[0100]fromtable1a,[0101]leftjointable2bona.id=b.id[0102]leftjointable3cona.name=c.name;[0103]上述sql语句d和sql语句e虽然语句不同,但是经过解析生成对应的语法树之后,sql语句d对应的语法树和sql语句e对应的语法树相同,如图3所示。[0104]拦截条件为sql语句涉及的表连接操作的数据表数量大于等于3。拦截平台从拦截条件中获得条件信息为表连接操作。图3中,seqscan表示表连接操作,根据条件信息表连接操作从图3所示的语法树中,可以查询获得3个表连接操作,分别在节点3、节点5和节点7,节点3对应的实体名称为table1asa,节点5对应的实体名称为table2asb,节点7对应的实体名称为table3asc,可以确定sql语句涉及的表连接操作的数据表数量为3。条件信息表连接操作对应的信息为表连接操作的数据表数量3,由于表连接操作的数量3满足上述拦截条件,所以sql语句d和sql语句e都与上述拦截条件匹配,拦截平台会拒绝sql语句d和sql语句e。通过本发明实施例提供的结构化查询语言语句的拦截处理方法,能够对同一数据库产品的针对相同应用场景的不同sql语句进行拦截,避免导致相同场景的问题反复出现。[0105]图5是本发明第五实施例提供的结构化查询语言语句的拦截处理装置的结构示意图,如图5所示,本发明实施例提供的结构化查询语言语句的拦截处理装置包括拦截模块501、解析模块502和拒绝模块503,其中:[0106]拦截模块501用于拦截结构化查询语言语句;解析模块502用于解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;拒绝模块503用于在根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题之后,拒绝所述结构化查询语言语句。[0107]具体地,应用服务器向数据库服务器发送sql语句,拦截模块501可以拦截sql语句。[0108]在拦截sql语句之后,解析模块502可以解析所述sql语句,生成所述sql语句对应的语法树。通过语法树可以屏蔽不同数据库产品的sql语句的差异。[0109]拒绝模块503根据所述结构化查询语言语句对应的语法树以及拦截规则,判断所述结构化查询语言语句是否存在问题,如果所述结构化查询语言语句存在问题,那么拒绝所述结构化查询语言语句,即不会将所述sql语句发送给数据库服务器,可以向所述应用服务器返回所述sql语句存在问题的提示信息。如果所述结构化查询语言语句不存在问题,那么可以将所述sql语句发送给数据库服务器。其中,所述拦截规则是预设的,根据实际需要进行设置,本发明实施例不做限定。[0110]本发明实施例提供的结构化查询语言语句的拦截处理方法及装置,拦截结构化查询语言语句;解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句,适用于不同数据库产品的sql语句,无需针对每个数据库产品设计拦截方案,降低了成本。[0111]在上述各实施例的基础上,进一步地,拒绝模块503具体用于:[0112]若判断获知所述结构化查询语言语句对应的语法树与所述拦截规则包括的任何一个拦截条件匹配,则确定所述结构化查询语言语句存在问题;其中,所述拦截规则包括多个拦截条件。[0113]图6是本发明第六实施例提供的结构化查询语言语句的拦截处理装置的结构示意图,如图6所示,在上述各实施例的基础上,进一步地,拒绝模块503包括第一查询单元5031和第一判断单元5032,其中:[0114]第一查询单元5031用于根据所述拦截条件包括的条件信息,从所述结构化查询语言语句对应的语法树中查询到所述条件信息对应的信息;第一判断单元5032用于在判断获知所述条件信息对应的信息满足所述拦截条件之后,确定所述结构化查询语言语句对应的语法树与所述拦截条件匹配。[0115]图7是本发明第七实施例提供的结构化查询语言语句的拦截处理装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,拒绝模块503包括第二查询单元5033、第三查询单元5034和第二判断单元5035,其中:[0116]第二查询单元5033用于根据所述拦截条件包括的基本信息,从所述结构化查询语言语句对应的语法树中查询到所述基本信息对应的信息;其中,所述拦截条件包括基本信息和关键信息;第三查询单元5034用于根据所述基本信息对应的信息以及所述关键信息,从所述结构化查询语言语句对应的数据库的元数据信息中查询获得所述关键信息对应的数据;第二判断单元5035用于在判断获知所述关键信息对应的数据满足所述拦截条件之后,确定所述结构化查询语言语句对应的语法树与所述拦截条件匹配。[0117]在上述各实施例的基础上,进一步地,所述结构化查询语言语句对应的数据库的元数据信息是预先获得的。[0118]图8是本发明第八实施例提供的结构化查询语言语句的拦截处理装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语句的拦截处理装置还包括记录模块504,其中:[0119]记录模块504用于记录存在问题的结构化查询语言语句的相关信息。[0120]图9是本发明第九实施例提供的结构化查询语言语句的拦截处理装置的结构示意图,如图9所示,在上述各实施例的基础上,进一步地,本发明实施例提供的结构化查询语言语句的拦截处理装置还包括上报模块505,其中:[0121]上报模块505用于定期将存在问题的结构化查询语言语句的相关信息整理成拦截报表进行上报。[0122]本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。[0123]需要说明的是,本发明实施例提供的结构化查询语言语句的拦截处理方法及装置可用于金融领域,也可用于除金融领域之外的任意
技术领域
:,本发明实施例对结构化查询语言语句的拦截处理方法及装置的应用领域不做限定。[0124]图10是本发明一实施例提供的电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1001、通信接口(communicationsinterface)1002、存储器(memory)1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。处理器1001可以调用存储器1003中的逻辑指令,以执行如下方法:拦截结构化查询语言语句;解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句。[0125]此外,上述的存储器1003中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0126]本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:拦截结构化查询语言语句;解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句。[0127]本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:拦截结构化查询语言语句;解析所述结构化查询语言语句,生成所述结构化查询语言语句对应的语法树;若根据所述结构化查询语言语句对应的语法树以及拦截规则判断获知所述结构化查询语言语句存在问题,则拒绝所述结构化查询语言语句。[0128]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0129]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0130]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0131]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0132]在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。[0133]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1