CN113760893A - 指令控制方法、装置、计算机系统和计算机可读存储介质 - Google Patents
指令控制方法、装置、计算机系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113760893A CN113760893A CN202110010374.1A CN202110010374A CN113760893A CN 113760893 A CN113760893 A CN 113760893A CN 202110010374 A CN202110010374 A CN 202110010374A CN 113760893 A CN113760893 A CN 113760893A
- Authority
- CN
- China
- Prior art keywords
- instruction
- blacklist
- template
- data request
- request instruction
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000015654 memory Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种指令控制方法、指令控制装置、计算机系统和计算机可读存储介质。其中,指令控制方法包括:获取数据请求指令;根据数据请求指令生成与数据请求指令相对应的请求指令模板;将请求指令模板与指令黑名单中的指令模板进行匹配,其中,指令黑名单中包括禁止执行的指令模板;以及在指令黑名单中存在与请求指令模板相匹配的指令模板的情况下,停止执行数据请求指令。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种指令控制方法、指令控制装置、计算机系统和计算机可读存储介质。
背景技术
随着计算机技术的快速发展,越来越多的业务依赖于数据库获取数据支持。在一项业务的具体实施过程中,不可避免的需要使用到数据库,例如需要对数据库进行访问。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:数据库响应缓慢。
发明内容
有鉴于此,本公开提供了一种指令控制方法、指令控制装置、计算机系统和计算机可读存储介质。
本公开的一个方面提供了一种指令控制方法,包括:获取数据请求指令;根据所述数据请求指令生成与所述数据请求指令相对应的请求指令模板;将所述请求指令模板与指令黑名单中的指令模板进行匹配,其中,所述指令黑名单中包括禁止执行的指令模板;以及在所述指令黑名单中存在与所述请求指令模板相匹配的指令模板的情况下,停止执行所述数据请求指令。
本公开的另一个方面提供了一种指令控制装置,包括:获取模块,用于获取数据请求指令;生成模块,用于根据所述数据请求指令生成与所述数据请求指令相对应的请求指令模板;匹配模块,用于将所述请求指令模板与指令黑名单中的指令模板进行匹配,其中,所述指令黑名单中包括禁止执行的指令模板;以及停止模块,用于在所述指令黑名单中存在与所述请求指令模板相匹配的指令模板的情况下,停止执行所述数据请求指令。
本公开的另一方面提供了一种计算机系统,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的指令控制方法。
本公开的另一方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的指令控制方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的指令控制方法。
根据本公开的实施例,通过采用了获取数据请求指令;根据数据请求指令生成与数据请求指令相对应的请求指令模板;将请求指令模板与指令黑名单中的指令模板进行匹配,其中,指令黑名单中包括禁止执行的指令模板;以及在指令黑名单中存在与请求指令模板相匹配的指令模板的情况下,停止执行数据请求指令的技术手段,由于设置了指令黑名单,可以事先将影响数据库响应速度的相关指令以指令模板的方式存储在指令黑名单中,并通过指令黑名单的作用禁止该相关指令访问数据库,从而可以至少部分地解决数据库响应缓慢的技术问题,进而达到了提升数据库响应速率的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用指令控制方法的示例性系统架构;
图2示意性示出了根据本公开实施例的指令控制方法的流程图;
图3A~图3B示意性示出了根据本公开实施例的根据数据请求指令生成与数据请求指令相对应的请求指令模板的部分流程展示;
图4示意性示出了根据本公开实施例的指令控制方法的完整流程图;
图5示意性示出了根据本公开的实施例的指令控制装置的框图;以及
图6示意性示出了根据本公开实施例的适于实现指令控制方法的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在实际的业务场景中,通常需要应用频繁执行某个SQL(结构化查询语言)访问(例如为查询)数据库。
在实现本公开构思的过程中,发明人发现,在查询数据库的过程中可能会因为查询过于复杂或者没有很好的使用到索引,导致一个查询拖慢了整个数据库服务,进而影响到数据库中其他服务的可用性。
进一步的,发明人还发现,为解决上述问题,通常由专业运维人员登录数据库定位到慢查询,然后将连接断开,但是,在查询数据库的过程中,应用服务可能会不停的建立连接不停的发送请求到数据库服务,这就需要DBA(数据库运维人员)通过脚本或者工具不停的检查是否有慢查询、需要不停断开执行慢查询的连接。因此,前述断开执行慢查询的连接的方式,一方面,运维成本比较高;另一方面,不停的断开执行慢查询的连接,不仅存在连接断开会导致业务受损的问题,而且检查是否有慢查询的过程也可能会导致CPU、内存、磁盘IO等资源的消耗。
本公开的实施例提供了一种指令控制方法、指令控制装置、计算机系统和计算机可读存储介质。该方法包括获取数据请求指令;根据数据请求指令生成与数据请求指令相对应的请求指令模板;将请求指令模板与指令黑名单中的指令模板进行匹配,其中,指令黑名单中包括禁止执行的指令模板;以及在指令黑名单中存在与请求指令模板相匹配的指令模板的情况下,停止执行数据请求指令。
图1示意性示出了根据本公开实施例的可以应用指令控制方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的指令控制方法一般可以由服务器105执行。相应地,本公开实施例所提供的指令控制装置一般可以设置于服务器105中。本公开实施例所提供的指令控制方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的指令控制装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的指令控制方法也可以由终端设备101、102、或103执行,或者也可以由不同于终端设备101、102、或103的其他终端设备执行。相应地,本公开实施例所提供的指令控制装置也可以设置于终端设备101、102、或103中,或设置于不同于终端设备101、102、或103的其他终端设备中。
例如,指令黑名单可以原本存储在终端设备101、102、或103中的任意一个(例如,终端设备101,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备101中。然后,终端设备101可以在本地执行本公开实施例所提供的指令控制方法,或者将指令黑名单发送到其他终端设备、服务器、或服务器集群,并由接收该指令黑名单的其他终端设备、服务器、或服务器集群来执行本公开实施例所提供的指令控制方法。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的指令控制方法的流程图。
如图2所示,该方法包括操作S201~S204。
在操作S201,获取数据请求指令。
根据本公开的实施例,数据请求指令例如可以为在各种软件、应用、网页等环境下请求数据服务的指令,该指令例如可以为用于请求网页的页面显示、或其他信息数据的展示等。
在操作S202,根据数据请求指令生成与数据请求指令相对应的请求指令模板。
根据本公开的实施例,请求指令模板可以表征一个或一类(包括多个)数据请求指令。例如,一个具有实际执行效果的数据请求指令可以直接作为一个请求指令模板;或者,查询条件相似的多个数据请求指令可以最终生成为同一个请求指令模板,其中,查询条件相似例如可以表现为“select*from t where name=‘lisa’”和“select*from twherename=‘lisa’”,两者均是根据name字段查询t表,两者最终生成的同一个请求指令模板,可以表征所有的属于根据name字段查询t表这一类的数据请求指令。
在操作S203,将请求指令模板与指令黑名单中的指令模板进行匹配,其中,指令黑名单中包括禁止执行的指令模板。
根据本公开的实施例,指令黑名单中以指令模板的形式存储着被禁止执行的某个或某类数据请求指令,指令黑名单中的指令模板的形式例如即表现为前述操作S202生成的请求指令模板的形式。
需要说明的是,指令黑名单中可以为空,即不包括任何指令模板,在该种情况下,表示所有的数据请求指令都不会被禁止。
在操作S204,在指令黑名单中存在与请求指令模板相匹配的指令模板的情况下,停止执行数据请求指令。
根据本公开的实施例,相匹配表示存在一个数据请求指令,其对应生成的请求指令模板可以在指令黑名单中被找到,即意味着该数据请求指令属于被禁止执行的指令,则停止对该数据执行指令的进一步执行操作。
通过本公开的上述实施例,由于设置了指令黑名单,可以通过在指令黑名单中添加指令模板的方式,使数据库自身就具备直接拒绝某种类型的数据请求指令的能力,从而相应的数据请求指令在一开始就被数据库判断为不执行,在一定程度上可有效减少由执行该数据请求指令而导致的过多的人工运维成本。
下面结合具体实施例,并参考图3A、图3B和图4,对图2所示的方法做进一步说明。
根据本公开的实施例,上述数据请求指令中包括值类型的字段,上述操作S202包括:解析数据请求指令,生成语法树;遍历语法树,将语法树中的值类型的节点替换为通配符,得到正则化的语法树;以及根据正则化的语法树得到请求指令模板。
图3A~图3B示意性示出了根据本公开实施例的根据数据请求指令生成与数据请求指令相对应的请求指令模板的部分流程展示。
根据本公开的实施例,数据请求指令例如为SQL查询指令:select*from t wherename=‘lisa’。数据库在接收到该SQL查询请求后首先会进行SQL解析,解析SQL后生成语法树(如图3A所示),然后遍历该语法树,发现值类型的节点(即图3A所示语法树中的值为‘lisa’的节点),即将该节点(字符串‘lisa’)替换成通配符’?’,得到正则化的语法树(如图3B所示),最后,根据正则化的语法树生成一个SQL字符串就可以得到一个SQL模板(即上述请求指令模板),例如本实施例中根据图3B所示的正则化的语法树生成的SQL模板即为:select*from t where name=?。
需要说明的是,上述数据请求指令中例如还可以不包括上述值类型的字段,在该种情况下,可以直接将该数据请求指令作为上述请求指令模板,而无需上述的解析生成语法树、以及值节点(即上述值类型的节点)替换为通配符的过程。
根据本公开的实施例,上述数据请求指令包括用于请求访问数据库的数据请求指令,上述指令控制方法还包括:在停止执行数据请求指令的情况下,保持数据库与用于传输请求指令的线程之间的连接。
根据本公开的实施例,每条指令在访问数据库之前,都需要首先与数据库建立连接,该连接例如可以为数据库与传输指令的线程之间的连接,在根据上述指令黑名单确定某些指令需要被终止执行的情况下,可以直接停止执行该些指令,而无需断开数据库与传输相关指令的线程之间的连接。
通过本公开的上述实施例,由于相关指令直接被拒绝执行,可有效避免现有技术中相关指令先执行再kill(断开连接)的方式可能导致的业务受损的问题。
根据本公开的实施例,上述指令控制方法还包括:预先创建指令黑名单。需要说明的是,该创建指令黑名单的过程例如可以包括添加指令模板的过程和移除指令模板的过程,具体需要通过添加还是移除指令模板的方式创建上述指令黑名单,例如可以为通过判断数据请求指令是否会对数据库性能产生损害来决定。
在数据请求指令会对数据库性能产生损害的情况下,上述创建指令黑名单包括:确定第一目标指令模板;以及对第一目标指令模板执行第一预设语句,以便将第一目标指令模板添加至指令黑名单中。
例如,当前数据库中t表的name字段没有索引,新功能上线需要根据name字段查询t表,功能上线后会有大量的根据name查询t表(如其中一条查询指令可以表现为select*from t where name=‘lisa’)这样的查询指令发送到数据库,每个查询都需要扫描全表,导致数据库性能会急剧下降,则可以判断根据name字段查询t表这一类查询指令(SQL表示例如可以为select*from t where name=?)会对数据库性能产生损害,即可将select*from t where name=?确定为上述第一目标指令模板,上述第一预设语句的SQL表示例如可以为disable select*from t where name=?,通过执行该第一预设语句,第一目标指令模板select*from t where name=?即可被添加到上述指令黑名单中。
通过本公开的上述实施例,在出现某一类型的查询会影响到数据库的性能的情况下,可以通过上述方式直接禁止掉这种查询,可有效避免一种类型的查询影响到整个数据库服务。例如在上述实施例中直接禁止掉了所有的根据name字段查询t表的相关请求指令,从而在新功能上线后出现该请求指令的情况下,可以直接拒绝,而不需要中断现有的线程与数据库之间的连接,即保护了数据库不会对t表进行全表扫描,也避免了大量kill连接对其他请求产生影响。
在数据请求指令不会对数据库性能产生损害的情况下,上述创建指令黑名单包括:确定第二目标指令模板,其中,指令黑名单中包括第二目标指令模板;以及对第二目标指令模板执行第二预设语句,以便从指令黑名单中移除第二目标指令模板。
例如,在前述实施例中当前数据库的基础上,通过执行DDL(数据库模式定义语言)对t表的name字段添加索引,则数据库再根据name字段查询t表将不再需要全表扫描,数据库能够支持高并发的根据name字段的索引扫描,则可以判断指令黑名单中的“select*fromt where name=?”这一类数据请求指令不会再对数据库性能产生损害,即可将select*from t where name=?确定为上述第二目标指令模板,上述第二预设语句的SQL表示例如可以为enable select*from t where name=?,通过执行该第二预设语句,第二目标指令模板select*from t where name=?即可从上述指令黑名单中被移除。
通过本公开的上述实施例,可以在创建了索引之后,仅通过一条执行语句就可移除指令黑名单中的需要被移除的指令模板,从而保证上述新功能上线后的正常执行。
需要说明的是,上述第一预设语句中的disable命令和第二预设语句中的enable命令也可以替换为其他语句或字符串的表现形式,只需为相应的语句或字符串配置与disable或enable相同功能的脚本程序即可。
通过本公开的上述实施例,由于设置了扩展语法(如上述的第一预设语句和第二预设语句)动态的更新指令黑名单的列表,可以实现对上述指令黑名单的动态配置,从而可以动态的禁止、开始某种类型的数据请求指令(如查询)的执行,进而有效达到保护数据库的目的。
根据本公开的实施例,上述指令控制方法还包括:在指令黑名单中不存在与请求指令模板相匹配的指令模板的情况下,执行数据请求指令。
图4示意性示出了根据本公开实施例的指令控制方法的完整流程图。
如图4所示,数据库在接收到新的SQL请求(即上述数据请求指令,例如为查询请求)后,经过SQL解析(包括上述解析生成语法树、以及值节点替换为通配符的过程),生成SQL指纹(即上述SQL模板)。如果查询线程发现该SQL指纹已经配置在指令黑名单的列表中,则直接拒绝该查询请求,并返回错误,结束该查询过程;如果查询线程未在指令黑名单的列表中发现该SQL指纹,则生成查询计划,正常执行查询过程,并返回执行结果,结束该查询过程。
根据本公开的实施例,上述指令黑名单中的指令模板例如可以为影响数据库服务性能的所有请求指令对应的指令模板。例如可以为上述在没有索引的情况下执行的查询请求对应的指令模板,如select*from t where name=?等,或者还可以为对数据库本身存在高风险的请求指令对应的指令模板,如select*from t,delete from t等。
本公开通过上述实施例实现了一种基于SQL指纹的指令黑名单的动态配置技术,通过SQL解析后的语法树、抽象化语法树中的参数,然后通过语法树生成SQL指纹。按照SQL指纹形式动态配置指令黑名单,数据库可以直接将一类查询拒绝掉,从而在线上环境出现大量慢查询时不再需要不断的杀连接,提高了运维效率,降低了运维成本。此外,通过设置查询黑名单还可以避免一些线上有风险的操作,比如没有带where条件删除或者更新操作,通过配置查询黑名单可有效避免高风险查询破坏数据库服务、破坏数据。
图5示意性示出了根据本公开的实施例的指令控制装置的框图。
如图5所示,指令控制装置500包括获取模块510、生成模块520、匹配模块530和停止模块540。
获取模块510,用于获取数据请求指令。
生成模块520,用于根据数据请求指令生成与数据请求指令相对应的请求指令模板。
匹配模块530,用于将请求指令模板与指令黑名单中的指令模板进行匹配,其中,指令黑名单中包括禁止执行的指令模板。
停止模块540,用于在指令黑名单中存在与请求指令模板相匹配的指令模板的情况下,停止执行数据请求指令。
根据本公开的实施例,上述数据请求指令中包括值类型的字段,上述生成模块包括解析单元、替换单元和得到单元。
解析单元,用于解析数据请求指令,生成语法树。
替换单元,用于遍历语法树,将语法树中的值类型的节点替换为通配符,得到正则化的语法树。
得到单元,用于根据正则化的语法树得到请求指令模板。
根据本公开的实施例,上述数据请求指令包括用于请求访问数据库的数据请求指令,上述指令控制方法还包括保持模块。
保持模块,用于在停止执行数据请求指令的情况下,保持数据库与用于传输请求指令的线程之间的连接。
根据本公开的实施例,上述指令控制方法还包括创建模块,用于预先创建指令黑名单,该创建模块包括第一确定单元和添加单元。
第一确定单元,用于确定第一目标指令模板。
添加单元,用于对第一目标指令模板执行第一预设语句,以便将第一目标指令模板添加至指令黑名单中。
根据本公开的实施例,上述创建模块还包括第二确定单元和移除单元。
第二确定单元,用于确定第二目标指令模板,其中,指令黑名单中包括第二目标指令模板。
移除单元,用于对第二目标指令模板执行第二预设语句,以便从指令黑名单中移除第二目标指令模板。
根据本公开的实施例,上述指令控制方法还包括执行模块。
执行模块,用于在指令黑名单中不存在与请求指令模板相匹配的指令模板的情况下,执行数据请求指令。
根据本公开的实施例,上述指令黑名单中的指令模板为影响数据库服务性能的请求指令对应的指令模板。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块510、生成模块520、匹配模块530和停止模块540中的任意多个可以合并在一个模块/单元中实现,或者其中的任意一个模块/单元可以被拆分成多个模块/单元。或者,这些模块/单元中的一个或多个模块/单元的至少部分功能可以与其他模块/单元的至少部分功能相结合,并在一个模块/单元中实现。根据本公开的实施例,获取模块510、生成模块520、匹配模块530和停止模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、生成模块520、匹配模块530和停止模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中指令控制装置部分与本公开的实施例中指令控制方法部分是相对应的,指令控制装置部分的描述具体参考指令控制方法部分,在此不再赘述。
图6示意性示出了根据本公开实施例的适于实现指令控制方法的计算机系统的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的计算机系统600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有系统600操作所需的各种程序和数据。处理器601、ROM 602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。系统600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (10)
1.一种指令控制方法,包括:
获取数据请求指令;
根据所述数据请求指令生成与所述数据请求指令相对应的请求指令模板;
将所述请求指令模板与指令黑名单中的指令模板进行匹配,其中,所述指令黑名单中包括禁止执行的指令模板;以及
在所述指令黑名单中存在与所述请求指令模板相匹配的指令模板的情况下,停止执行所述数据请求指令。
2.根据权利要求1所述的方法,其中,所述数据请求指令中包括值类型的字段,根据所述数据请求指令生成与所述数据请求指令相对应的请求指令模板包括:
解析所述数据请求指令,生成语法树;
遍历所述语法树,将所述语法树中的值类型的节点替换为通配符,得到正则化的语法树;以及
根据所述正则化的语法树得到所述请求指令模板。
3.根据权利要求1所述的方法,其中,所述数据请求指令包括用于请求访问数据库的数据请求指令,所述方法还包括:
在停止执行所述数据请求指令的情况下,保持所述数据库与用于传输请求指令的线程之间的连接。
4.根据权利要求1所述的方法,还包括:
预先创建所述指令黑名单,包括:
确定第一目标指令模板;以及
对所述第一目标指令模板执行第一预设语句,以便将所述第一目标指令模板添加至所述指令黑名单中。
5.根据权利要求1所述的方法,还包括:
预先创建所述指令黑名单,包括:
确定第二目标指令模板,其中,所述指令黑名单中包括所述第二目标指令模板;以及
对所述第二目标指令模板执行第二预设语句,以便从所述指令黑名单中移除所述第二目标指令模板。
6.根据权利要求1所述的方法,还包括:
在所述指令黑名单中不存在与所述请求指令模板相匹配的指令模板的情况下,执行所述数据请求指令。
7.根据权利要求1所述的方法,其中,所述指令黑名单中的指令模板为影响数据库服务性能的请求指令对应的指令模板。
8.一种指令控制装置,包括:
获取模块,用于获取数据请求指令;
生成模块,用于根据所述数据请求指令生成与所述数据请求指令相对应的请求指令模板;
匹配模块,用于将所述请求指令模板与指令黑名单中的指令模板进行匹配,其中,所述指令黑名单中包括禁止执行的指令模板;以及
停止模块,用于在所述指令黑名单中存在与所述请求指令模板相匹配的指令模板的情况下,停止执行所述数据请求指令。
9.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110010374.1A CN113760893A (zh) | 2021-01-05 | 2021-01-05 | 指令控制方法、装置、计算机系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110010374.1A CN113760893A (zh) | 2021-01-05 | 2021-01-05 | 指令控制方法、装置、计算机系统和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760893A true CN113760893A (zh) | 2021-12-07 |
Family
ID=78786271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110010374.1A Pending CN113760893A (zh) | 2021-01-05 | 2021-01-05 | 指令控制方法、装置、计算机系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760893A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9537865B1 (en) * | 2015-12-03 | 2017-01-03 | International Business Machines Corporation | Access control using tokens and black lists |
CN108540465A (zh) * | 2018-03-30 | 2018-09-14 | 北京百度网讯科技有限公司 | Sql注入拦截检测方法、装置、设备及计算机可读介质 |
CN111259039A (zh) * | 2020-02-12 | 2020-06-09 | 平安科技(深圳)有限公司 | 数据库操作方法、装置、设备和计算机可读存储介质 |
-
2021
- 2021-01-05 CN CN202110010374.1A patent/CN113760893A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9537865B1 (en) * | 2015-12-03 | 2017-01-03 | International Business Machines Corporation | Access control using tokens and black lists |
CN108540465A (zh) * | 2018-03-30 | 2018-09-14 | 北京百度网讯科技有限公司 | Sql注入拦截检测方法、装置、设备及计算机可读介质 |
US20190306191A1 (en) * | 2018-03-30 | 2019-10-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Sql injection interception detection method and device, apparatus and computer readable medium |
CN111259039A (zh) * | 2020-02-12 | 2020-06-09 | 平安科技(深圳)有限公司 | 数据库操作方法、装置、设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9009669B2 (en) | Visual user interface validator | |
CN110019080B (zh) | 数据访问方法和装置 | |
WO2020024895A1 (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
US20180124109A1 (en) | Techniques for classifying a web page based upon functions used to render the web page | |
WO2020024896A1 (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
CN111125107A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN114254389A (zh) | 报文脱敏方法、装置、电子设备及介质 | |
CN116611411A (zh) | 一种业务系统报表生成方法、装置、设备及存储介质 | |
WO2020024899A1 (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
CN110795331A (zh) | 软件测试的方法和装置 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
WO2020024902A1 (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
CN116560661A (zh) | 代码优化方法、装置、设备及存储介质 | |
CN113760893A (zh) | 指令控制方法、装置、计算机系统和计算机可读存储介质 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN113392311A (zh) | 字段搜索方法、字段搜索装置、电子设备及存储介质 | |
US10922366B2 (en) | Self-adaptive web crawling and text extraction | |
CN113760835B (zh) | 日志管理方法、中台系统、电子设备和存储介质 | |
CN111367889A (zh) | 基于网页界面的跨集群数据迁移方法和装置 | |
CN114363172B (zh) | 用于容器组的解耦管理方法、装置、设备、介质 | |
US10579696B2 (en) | Save session storage space by identifying similar contents and computing difference | |
US11769005B2 (en) | Information uniqueness assessment using string-based collection frequency | |
CN117077098A (zh) | 信息处理方法、装置、电子设备和存储介质 | |
CN113297087A (zh) | 测试方法和装置 | |
CN114528592A (zh) | 业务处理方法、装置、设备、介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |