CN106294401A - 自动建立sql名单库的方法及装置 - Google Patents

自动建立sql名单库的方法及装置 Download PDF

Info

Publication number
CN106294401A
CN106294401A CN201510263224.6A CN201510263224A CN106294401A CN 106294401 A CN106294401 A CN 106294401A CN 201510263224 A CN201510263224 A CN 201510263224A CN 106294401 A CN106294401 A CN 106294401A
Authority
CN
China
Prior art keywords
sql
statement
extracted
code library
list storehouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510263224.6A
Other languages
English (en)
Inventor
张园超
肖磊
方海峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510263224.6A priority Critical patent/CN106294401A/zh
Publication of CN106294401A publication Critical patent/CN106294401A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2438Embedded query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Abstract

本发明提供了一种建立SQL名单库的方法及装置。所述自动建立SQL名单库的方法,包括:从待提取代码库中提取SQL语句;对提取的SQL语句进行标准化,使得对于同种类型的不同SQL语句,标准化后形成相同的SQL语句;将标准化后的SQL语句加入SQL名单库。

Description

自动建立SQL名单库的方法及装置
技术领域
本发明涉及数据库技术领域,尤其涉及一种自动建立SQL名单库的方法及装置。
背景技术
在数据库安全审计系统中,需要判断数据库执行的SQL命令是否合法,最常用的方法是SQL名单库。SQL(Structured Query Language,结构化查询语言)名单库,也称SQL白名单库,是用于数据库安全审计系统判断数据库执行的SQL命令是否合法的重要依据。数据库安全审计系统通过对比数据库执行的SQL命令是否在SQL名单库中,如果不在该SQL名单库中,则确认该数据库执行的SQL命令为非法SQL。
目前建立SQL名单库的方法完全靠人工完成,具体包括:先收集一段时间内数据库上执行过的SQL语句,根据这些SQL语句进行人工统计分析,将人工分析确认为合法的SQL语句加入到名单库。
现有的人工建立SQL名单库的方法至少存在如下缺点:
1)SQL名单库的建立周期长,更新频率慢。一般人工建立或更新SQL名单库的周期至少要几周到一个月,这将导致无法及时将新增的SQL合法语句加入到SQL名单库中,直接影响数据库审计系统进行数据库安全审计的误报率。
2)所需人力成本高。
3)如果SQL名单库由不同的人建立,不同的人向SQL名单库中添加的SQL合法语句的格式不同。例如,第一用户可能将
SELECT ID FROM USER_MEMO WHERE ID=?LIMIT?,?这个SQL合法语句添加到SQL名单库中,第二用户可能将
SELECT ID FROM USER_MEMO WHERE ID=xxx LIMITxx,xx这个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是根据本发明一个实施例的提取单元的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明的技术方案作进一步详细描述。
图1是根据本发明一个实施例的建立SQL名单库的方法的流程图,该方法包括如下步骤:
S10、从待提取代码库中提取SQL语句;
S11、对提取的SQL语句进行标准化,使得对于同种类型的不同SQL语句,在标准化后形成相同的SQL语句;
S12、将标准化后的SQL语句加入SQL名单库。
下面对上述各步骤做进一步详细介绍。
本申请实施例所述的建立SQL名单库包括:初始建立SQL名单库以及基于更新的代码库更新SQL名单库两个过程。
本实施例中所述的代码库是程序人员编写的、经过测试后合格的合法应用代码的集合。由于它是测试后合格的合法应用代码的集合,因此基于从中提取的SQL语句建立的SQL名单库是可用于数据库安全审计系统的白名单库。该代码库所对应的系统是允许访问数据库的系统。待提取代码库是从中提取SQL语句,从而由此构造SQL名单库的代码库。它可以是一个或多个,并且不是一成不变的,可能会随着使用和测试的过程不断扩大,因为随着时间的推移会有新的SQL语句不断构造出,其中有合法的,也有非法的。经过测试后,合法的SQL语句会被放到该一个或多个待提取代码库中。因此,如下文所述,本发明实施例的自动建立SQL名单库的方法也可以随着待提取代码库内容的更新而更新建立的SQL名单库。
步骤S10中所述的从待提取代码库中提取SQL语句可以是响应于待提取代码库的版本号大于SQL名单库中记录的版本号而执行的,并在从待提取代码库中提取SQL语句后,以待提取代码库的版本号更新SQL名单库中记录的版本号。
对于初始建立SQL名单库的过程,SQL名单库中记录的版本号默认为0。在更新SQL名单库的过程中,SQL名单库中记录的版本号即为上次建立或更新SQL名单库时的待提取代码库的版本号。
例如,初始建立SQL名单库时,SQL名单库中记录的版本号默认为0,则待提取代码库的版本号(假设为1.0)一定大于该SQL名单库中记录的版本号。在从待提取代码库中提取SQL语句后,以该待提取代码库的版本号1.0更新SQL名单库中记录的版本号0,则更新后的SQL名单库中记录的版本号为1.0。
本申请实施例只在代码库的版本号有更新时,即代码库发生变化时,从待提取代码库中提取SQL语句。如果待提取代码库版本号没有更新,说明代码库没有变化,没有必要进行图1所示的各步骤。因此,减少了工作量,有效提高了执行效率。
另外,本申请实施例在从待提取代码库中提取SQL语句时,仅从待提取代码库中增量式提取SQL语句。因此,对于初始建立SQL名单库的过程,该待提取代码库包含代码库的所有代码;对于更新SQL名单库的过程,该待提取代码库包含代码库相对于SQL名单库记录的版本号更新的代码。其中,可以采用SVN(Subversion,开源源代码的版本控制系统)系统管理所述代码库,则可获知代码库发生版本更新时被更新的代码。同样可减少工作量,提高执行效率。
可以每间隔预定时间间隔比较待提取代码库的版本号和SQL名单库中记录的版本号,从而在待提取代码库的版本号大于该SQL名单库中记录版本号的情况下从待提取代码库中提取SQL语句。也就是,达到预定时间间隔则判断代码库的版本号是否大于SQL名单库中记录版本号。当然,本申请实施例并不排除实时检测的情况。
本申请一种实施例提供的从待提取代码库中自动提取SQL语句的方法的流程如图2中所示,包括如下子步骤:
子步骤20、从待提取代码库中定位出包含SQL语句的SQL配置文件;
其中一种实施例,从待提取代码库中定位出包含SQL语句的SQL配置文件的方法可以为:从待提取代码库中定位出后缀为XML,且包含指定节点(如<sqlMap>)的配置文件。由于包含SQL语句的SQL配置文件一般为后缀为XML的配置文件,且该XML的配置文件中包含指定节点(如<sqlMap>)。可以理解的是,本申请实施例并不局限于此。
子步骤21、从定位到的SQL配置文件中提取出SQL语句。
本申请实施例从SQL配置文件中提取SQL语句的方法可以为:提取预定节点间的文本作为提取的SQL语句,所述预定节点包括:<select>、<update>、<delete>及<insert>。
其中,一种从待提取代码库中定位出包含SQL语句的SQL配置文件,并从定位出的SQL配置文件中提取出SQL语句的方法举例如下:
首先,针对一个XML配置文件,发现其存在<sqlMap>节点,则可确定该配置文件为SQL配置文件,该SQL配置文件内容如下:
之后,识别<select>节点,读取其中的文本,提取出的SQL语句如下:
SELECT/*test*/ ID
FROM USER_MEMO where ID=#xxx#limit#offset#,#rownum#。
这样,只需要从有SQL语句的SQL配置文件中提取SQL语句,对于没有SQL语句的SQL配置文件,则没有必要从中提取SQL语句。因此,本发明实施例从有SQL语句的SQL配置文件中提取SQL语句的方式,大大提高了建立SQL名单库的效率。
步骤S11对提取的SQL语句进行标准化的步骤可以包括以下至少一项:
a)去除提取的SQL语句中的多余空字符、换行、注释。
其中,当连续空字符的个数大于一个时,保留其中一个空字符,其他空字符称为多余空字符,去除该多余空字符。
b)将SQL语句中的常量及变量的占位符使用统一符号代替。
例如,使用“?”代替SQL语句中的常量及变量的占位符。
c)统一SQL语句中的所有字符为大写或小写。
需要说明的是,上述三个步骤并无执行先后顺序的限制,可同时执行,也可以任意顺序先后执行。
其中一种对SQL语句进行标准化的举例如下:
从待提取代码库中提取的原始SQL语句如下:
SELECT/*test*/ ID
FROM USER_MEMO where ID=#xxx#limit#offset#,#rownum#。
对上述提取的SQL语句进行标准化的过程如下:
步骤A,去除注释和多余的空字符和换行;
即,去除上述SQL语句中的注释/*test*/,去除ID前多余的空字符以及去除ID后的换行。得到的SQL语句如下:
SELECT ID FROM USER_MEMO where ID=#xxx#limit#offset#,#rownum#。
步骤B,将上述步骤A得到的SQL语句中的常量和变量的占位符使用统一符号代替;
利用使用“?”代替上述SQL语句中的变量ID的占位符#xxx#,以及limit的占位符#offset#和#rownum#,得到的SQL语句如下:
SELECT ID FROM USER_MEMO where ID=?limit?,?;
步骤C,将SQL语句中的字符全部转换为大写;
转换后的SQL语句如下:
SELECT ID FROM USER_MEMO WHERE ID=?LIMIT?,?。
经过上述过程,对于同种类型的提取的不同结构化查询语言(SQL)语句,标准化后结构化查询语言(SQL)语句相同。
例如,SQL语句1为:
SELECT/*test*/ ID
FROM USER_MEMO where ID=#xxx#limit#offset#,#rownum#。
SQL语句2为:
SELECT/*test*/ ID
FROM USER_MEMO where ID=#yy#limit#range#,#columnnum#。
上述SQL语句1和2属于一种类型,由于参数不同,又是不同的SQL语句,它们标准化后的SQL语句都是:
SELECT ID FROM USER_MEMO WHERE ID=?LIMIT?,?。
步骤S12用于将标准化后的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名单库的装置,如图3中所示,为所述装置结构示意图,该装置主要包括:提取单元30、标准化单元31以及名单库建立单元32。
提取单元30主要用于从待提取代码库中提取SQL语句;
标准化单元31主要用于对提取的SQL语句进行标准化,使得对于同种类型的不同SQL语句,标准化后形成相同的SQL语句;
名单库建立单元32主要用于将标准化后的SQL语句加入SQL名单库。
可选地,所述提取单元响应于待提取代码库的版本号大于SQL名单库中记录的版本号,从待提取代码库中自动提取SQL语句。如图4所示,所述装置还可包括:版本号更新单元33,用于在将标准化后的SQL语句加入SQL名单库之后,以待提取代码库的版本号更新SQL名单库中记录的版本号。
可选地,所述提取单元每间隔预定时间间隔比较待提取代码库的版本号和SQL名单库中记录的版本号,从而在待提取代码库的版本号大于SQL名单库中记录的版本号的情况下从待提取代码库中自动提取SQL语句。
可选地,所述提取单元用于:仅从待提取代码库中更新的代码中增量式提取SQL语句。
可选地,如图5所示,提取单元包括:定位子单元301,用于从待提取代码库中定位出包含SQL语句的SQL配置文件;提取子单元302,用于从定位到的所述SQL配置文件中提取SQL语句。
可选地,所述标准化单元对提取的SQL语句进行无人工干预的标准化包括以下至少一项:去除提取的SQL语句中的多余空字符、换行、注释;将SQL语句中的常量及变量的占位符使用统一符号代替;统一SQL语句中的所有字符为大写或小写。
从上面的描述可以看出,本申请实施例的建立SQL名单库的装置可以从代码库中提取SQL语句,将SQL语句进行标准化,从而将标准化的SQL语句加入SQL名单库,实现了SQL名单库的自动建立以及更新,不需要人工确认,分钟级更新合法SQL名单列表,提升了SQL名单库的建立及更新效率,有效降低了SQL名单库建立过程的成本,并减少由于合法SQL名单更新不及时导致的审计误报。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里所寻求的保护在所附权利要求书中做了阐述。在下列编号条款中规定了各个实施例的这些和其他方面:
1、一种自动建立结构化查询语言(SQL)名单库的方法,其中,包括:
从待提取代码库中提取结构化查询语言(SQL)语句;
对提取的结构化查询语言(SQL)语句进行标准化,使得对于同种类型的不同结构化查询语言(SQL)语句,在标准化后形成相同的结构化查询语言(SQL)语句;
将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库。
2、如条款1所述的方法,其中,所述从待提取代码库中提取结构化查询语言(SQL)语句的步骤包括:
从待提取代码库中定位出包含结构化查询语言(SQL)语句的结构化查询语言(SQL)配置文件;
从定位到的所述结构化查询语言(SQL)配置文件中提取结构化查询语言(SQL)语句。
3、如条款1所述的方法,其中,所述从待提取代码库中提取结构化查询语言(SQL)语句的步骤是响应于待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号而执行的,且
在所述将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库之后,所述方法还包括:以所述待提取代码库的版本号更新所述结构化查询语言(SQL)名单库中记录的版本号。
4、如条款3所述的方法,其中,每间隔预定时间间隔比较待提取代码库的版本号和所述结构化查询语言(SQL)名单库中记录的版本号,从而在待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号的情况下从待提取代码库中提取结构化查询语言(SQL)语句。
5、如条款1所述的方法,其中,从待提取代码库中提取结构化查询语言(SQL)语句的步骤包括:
仅从待提取代码库中更新的代码中增量式提取结构化查询语言(SQL)语句。
6、如条款1所述的方法,其中,所述对提取的结构化查询语言(SQL)语句进行标准化的步骤包括以下至少一项:
去除提取的结构化查询语言(SQL)语句中的多余空字符、换行、注释;
将结构化查询语言(SQL)语句中的常量及变量的占位符使用统一符号代替;
统一结构化查询语言(SQL)语句中的所有字符为大写或小写。
7、一种自动建立结构化查询语言(SQL)名单库的装置,其中,包括:
提取单元,用于从待提取代码库中提取结构化查询语言(SQL)语句;
标准化单元,用于对提取的结构化查询语言(SQL)语句进行标准化,使得对于同种类型的不同结构化查询语言(SQL)语句,在标准化后形成相同的结构化查询语言(SQL)语句;
名单库建立单元,用于将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库。
8、如条款7所述的装置,其中,所述提取单元包括:
定位子单元,用于从待提取代码库中定位出包含结构化查询语言(SQL)语句的结构化查询语言(SQL)配置文件;
提取子单元,用于从定位到的所述结构化查询语言(SQL)配置文件中提取结构化查询语言(SQL)语句。
9、如条款7所述的装置,其中,所述提取单元响应于待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号,从待提取代码库中提取结构化查询语言(SQL)语句,且所述装置还包括:
版本号更新单元,用于在将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库之后,以所述待提取代码库的版本号更新所述结构化查询语言(SQL)名单库中记录的版本号。
10、如条款9所述的装置,其中,所述提取单元每间隔预定时间间隔比较待提取代码库的版本号和所述结构化查询语言(SQL)名单库中记录的版本号,从而在待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号的情况下从待提取代码库中提取结构化查询语言(SQL)语句。
11、如条款7所述的装置,其中,所述提取单元用于:
仅从待提取代码库中更新的代码中增量式提取结构化查询语言(SQL)语句。
12、如条款7所述的装置,其中,所述标准化单元对提取的结构化查询语言(SQL)语句进行标准化包括以下至少一项:
去除提取的结构化查询语言(SQL)语句中的多余空字符、换行、注释;
将结构化查询语言(SQL)语句中的常量及变量的占位符使用统一符号代替;
统一结构化查询语言(SQL)语句中的所有字符为大写或小写。

Claims (10)

1.一种自动建立结构化查询语言(SQL)名单库的方法,其特征在于,包括:
从待提取代码库中提取结构化查询语言(SQL)语句;
对提取的结构化查询语言(SQL)语句进行标准化,使得对于同种类型的不同结构化查询语言(SQL)语句,在标准化后形成相同的结构化查询语言(SQL)语句;
将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库。
2.如权利要求1所述的方法,其特征在于,所述从待提取代码库中提取结构化查询语言(SQL)语句的步骤包括:
从待提取代码库中定位出包含结构化查询语言(SQL)语句的结构化查询语言(SQL)配置文件;
从定位到的所述结构化查询语言(SQL)配置文件中提取结构化查询语言(SQL)语句。
3.如权利要求1所述的方法,其特征在于,所述从待提取代码库中提取结构化查询语言(SQL)语句的步骤是响应于待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号而执行的,且
在所述将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库之后,所述方法还包括:以所述待提取代码库的版本号更新所述结构化查询语言(SQL)名单库中记录的版本号。
4.如权利要求3所述的方法,其特征在于,每间隔预定时间间隔比较待提取代码库的版本号和所述结构化查询语言(SQL)名单库中记录的版本号,从而在待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号的情况下从待提取代码库中提取结构化查询语言(SQL)语句。
5.如权利要求1所述的方法,其特征在于,从待提取代码库中提取结构化查询语言(SQL)语句的步骤包括:
仅从待提取代码库中更新的代码中增量式提取结构化查询语言(SQL)语句。
6.如权利要求1所述的方法,其特征在于,所述对提取的结构化查询语言(SQL)语句进行标准化的步骤包括以下至少一项:
去除提取的结构化查询语言(SQL)语句中的多余空字符、换行、注释;
将结构化查询语言(SQL)语句中的常量及变量的占位符使用统一符号代替;
统一结构化查询语言(SQL)语句中的所有字符为大写或小写。
7.一种自动建立结构化查询语言(SQL)名单库的装置,其特征在于,包括:
提取单元,用于从待提取代码库中提取结构化查询语言(SQL)语句;
标准化单元,用于对提取的结构化查询语言(SQL)语句进行标准化,使得对于同种类型的不同结构化查询语言(SQL)语句,在标准化后形成相同的结构化查询语言(SQL)语句;
名单库建立单元,用于将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库。
8.如权利要求7所述的装置,其特征在于,所述提取单元包括:
定位子单元,用于从待提取代码库中定位出包含结构化查询语言(SQL)语句的结构化查询语言(SQL)配置文件;
提取子单元,用于从定位到的所述结构化查询语言(SQL)配置文件中提取结构化查询语言(SQL)语句。
9.如权利要求7所述的装置,其特征在于,所述提取单元响应于待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号,从待提取代码库中提取结构化查询语言(SQL)语句,且所述装置还包括:
版本号更新单元,用于在将标准化后的结构化查询语言(SQL)语句加入结构化查询语言(SQL)名单库之后,以所述待提取代码库的版本号更新所述结构化查询语言(SQL)名单库中记录的版本号。
10.如权利要求9所述的装置,其特征在于,所述提取单元每间隔预定时间间隔比较待提取代码库的版本号和所述结构化查询语言(SQL)名单库中记录的版本号,从而在待提取代码库的版本号大于所述结构化查询语言(SQL)名单库中记录的版本号的情况下从待提取代码库中提取结构化查询语言(SQL)语句。
CN201510263224.6A 2015-05-21 2015-05-21 自动建立sql名单库的方法及装置 Pending CN106294401A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510263224.6A CN106294401A (zh) 2015-05-21 2015-05-21 自动建立sql名单库的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510263224.6A CN106294401A (zh) 2015-05-21 2015-05-21 自动建立sql名单库的方法及装置

Publications (1)

Publication Number Publication Date
CN106294401A true CN106294401A (zh) 2017-01-04

Family

ID=57632431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510263224.6A Pending CN106294401A (zh) 2015-05-21 2015-05-21 自动建立sql名单库的方法及装置

Country Status (1)

Country Link
CN (1) CN106294401A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107563193A (zh) * 2017-08-28 2018-01-09 深信服科技股份有限公司 基于sql模板的数据库访问控制方法及系统
CN108804947A (zh) * 2018-06-19 2018-11-13 上海点融信息科技有限责任公司 用于确定对数据库进行操作的白名单的方法和装置
CN109408525A (zh) * 2018-10-09 2019-03-01 河海大学 一种农业数据库sql语句安全检测方法及系统
CN113836171A (zh) * 2021-09-27 2021-12-24 北京金山云网络技术有限公司 数据脱敏方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093493A (zh) * 2006-06-23 2007-12-26 国际商业机器公司 数据库查询语言转换方法、转换装置、数据库查询系统
CN101464862A (zh) * 2007-12-21 2009-06-24 英业达股份有限公司 结构化查询语言生成系统及方法
CN102541884A (zh) * 2010-12-10 2012-07-04 中国移动通信集团贵州有限公司 数据库优化方法和装置
CN103488738A (zh) * 2013-09-18 2014-01-01 北京思特奇信息技术股份有限公司 一种自动实现java对象及数据表sql文件的方法及系统
CN103514166A (zh) * 2012-06-15 2014-01-15 阿里巴巴集团控股有限公司 Sql检查方法与装置
CN104572979A (zh) * 2014-12-31 2015-04-29 北京锐安科技有限公司 一种处理结构化查询语言sql的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093493A (zh) * 2006-06-23 2007-12-26 国际商业机器公司 数据库查询语言转换方法、转换装置、数据库查询系统
CN101464862A (zh) * 2007-12-21 2009-06-24 英业达股份有限公司 结构化查询语言生成系统及方法
CN102541884A (zh) * 2010-12-10 2012-07-04 中国移动通信集团贵州有限公司 数据库优化方法和装置
CN103514166A (zh) * 2012-06-15 2014-01-15 阿里巴巴集团控股有限公司 Sql检查方法与装置
CN103488738A (zh) * 2013-09-18 2014-01-01 北京思特奇信息技术股份有限公司 一种自动实现java对象及数据表sql文件的方法及系统
CN104572979A (zh) * 2014-12-31 2015-04-29 北京锐安科技有限公司 一种处理结构化查询语言sql的方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107563193A (zh) * 2017-08-28 2018-01-09 深信服科技股份有限公司 基于sql模板的数据库访问控制方法及系统
CN108804947A (zh) * 2018-06-19 2018-11-13 上海点融信息科技有限责任公司 用于确定对数据库进行操作的白名单的方法和装置
CN109408525A (zh) * 2018-10-09 2019-03-01 河海大学 一种农业数据库sql语句安全检测方法及系统
CN113836171A (zh) * 2021-09-27 2021-12-24 北京金山云网络技术有限公司 数据脱敏方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN104182389B (zh) 一种基于语义的大数据分析商业智能服务系统
US9361343B2 (en) Method for parallel mining of temporal relations in large event file
CN105808609A (zh) 一种信息点数据冗余的判别方法和设备
CN106294401A (zh) 自动建立sql名单库的方法及装置
CN102880709A (zh) 数据仓库管理系统和数据仓库管理方法
CN109344298A (zh) 一种将非结构化数据转化为结构化数据的方法及装置
CN104679495B (zh) 软件识别方法及装置
CN106886567A (zh) 基于语义扩展的微博突发事件检测方法及装置
CN108847957A (zh) 发现与呈现网络应用访问信息的方法和系统
CN105550375A (zh) 一种异构数据的整合方法及系统
CN106503256B (zh) 一种基于社交网络文档的热点信息挖掘方法
CN108831442A (zh) 兴趣点识别方法、装置、终端设备及存储介质
CN105518644A (zh) 在地图上实时处理并显示社交数据的方法
CN104700030B (zh) 一种病毒数据查找方法、装置及服务器
CN104102881A (zh) 一种基于内核对象链接关系的内存取证方法
CN115514558A (zh) 一种入侵检测方法、装置、设备及介质
CN103761257A (zh) 基于移动浏览器的网页处理方法及系统
CN104778252A (zh) 索引的存储方法和装置
CN109982250A (zh) 一种位置数据采集方法、设备及计算机存储介质
Benkhelifa et al. Framework for mobile devices analysis
CN105550183A (zh) 一种网页中识别信息的标识方法及电子设备
CN117009357A (zh) 智慧城市的物联网数据治理方法、装置、系统及介质
WO2016206395A1 (zh) 周报信息处理方法及装置
CN105574172A (zh) 一种数据分析方法及分析系统
CN115470489A (zh) 检测模型训练方法、检测方法、设备以及计算机可读介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170104