一种数据库检测方法及装置与流程

文档序号:29725095发布日期:2022-04-16 20:11阅读:91来源:国知局
一种数据库检测方法及装置与流程

1.本发明涉及数据库技术领域,特别是涉及一种数据库检测方法及装置。


背景技术:

2.在进行应用系统开发时,由开发人员设计应用系统的数据库,数据库用于存储应用系统的业务数据。应用系统在运行的过程中,通过sql(standard query language,结构化查询语言)语句访问对应的数据库中的业务数据。如果数据库设计或者sql语句存在隐患,会导致数据库的稳定性降低,进而降低应用系统的稳定性。因此,为了保证应用系统的稳定性,需要对应用系统的数据库进行检测。


技术实现要素:

3.本发明实施例的目的在于提供一种数据库检测方法及装置,以实现对数据库进行检测。后续可以基于待检测数据库的最终检测结果,确定待检测数据库的稳定性。具体技术方案如下:第一方面,为了达到上述目的,本发明实施例公开了一种数据库检测方法,所述方法包括:获取待检测数据库的元数据,以及所述待检测数据库对应的目标检测规则;其中,所述目标检测规则包括用于对对象定义语句进行检测的检测规则,以及用于对结构化查询语言语句进行检测的检测规则;每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果;基于所述待检测数据库的元数据,获取针对所述待检测数据库的,且与所述目标检测规则对应的语句,作为待检测语句;针对每一待检测语句,确定对应的目标检测规则中与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果;基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果。
4.可选的,所述获取待检测数据库的元数据,以及所述待检测数据库对应的目标检测规则,包括:接收用户输入的检测指令;其中,所述检测指令中携带有规则标识和数据库标识;从预设的多个检测规则中,确定所述规则标识所指示的检测规则,得到目标检测规则;获取所述数据库标识所指示的待检测数据库的元数据。
5.可选的,所述基于所述待检测数据库的元数据,获取针对所述待检测数据库的,且与所述目标检测规则对应的语句,作为待检测语句,包括:按照所述待检测数据库的元数据,获取所述待检测数据库的数据字典;基于所述目标检测规则,在所述待检测数据库的数据字典中进行查找,得到与所述目标检测规则对应的语句,作为待检测语句。
6.可选的,所述基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果,包括:对各待检测语句各自的检测结果进行统计,得到所述待检测数据库的最终检测结果;其中,所述最终检测结果包括以下至少一项:每一目标检测规则的规则名称、规则等级、规则描述信息、与该目标检测规则相匹配的语句的数目、语句优化方式和查询链接;所述查询链接用于获取与该目标检测规则相匹配的语句。
7.可选的,在所述基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果之后,所述方法还包括:将所述待检测数据库的最终检测结果存储至结果存储数据库;接收用户输入的查询指令;确定所述查询指令所指示的数据库,作为待查询数据库;从所述结果存储数据库中,获取所述待查询数据库的最终检测结果,并显示获取到的所述待查询数据库的最终检测结果。
8.可选的,在所述从所述结果存储数据库中,获取所述待查询数据库的最终检测结果之前,所述方法还包括:获取所述用户针对所述待查询数据库的查询权限;所述从所述结果存储数据库中,获取所述待查询数据库的最终检测结果,包括:在所述用户具有针对所述待查询数据库的查询权限的情况下,从所述结果存储数据库中,获取所述待查询数据库的最终检测结果。
9.第二方面,为了达到上述目的,本发明实施例公开了一种数据库检测装置,所述装置包括:第一获取模块,用于获取待检测数据库的元数据,以及所述待检测数据库对应的目标检测规则;其中,所述目标检测规则包括用于对对象定义语句进行检测的检测规则,以及用于对结构化查询语言语句进行检测的检测规则;每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果;第二获取模块,用于基于所述待检测数据库的元数据,获取针对所述待检测数据库的,且与所述目标检测规则对应的语句,作为待检测语句;第一确定模块,用于针对每一待检测语句,确定对应的目标检测规则中与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果;第二确定模块,用于基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果。
10.可选的,所述第一获取模块,具体用于接收用户输入的检测指令;其中,所述检测指令中携带有规则标识和数据库标识;从预设的多个检测规则中,确定所述规则标识所指示的检测规则,得到目标检测规则;获取所述数据库标识所指示的待检测数据库的元数据。
11.可选的,所述第二获取模块,具体用于按照所述待检测数据库的元数据,获取所述待检测数据库的数据字典;
基于所述目标检测规则,在所述待检测数据库的数据字典中进行查找,得到与所述目标检测规则对应的语句,作为待检测语句。
12.可选的,所述第二确定模块,具体用于对各待检测语句各自的检测结果进行统计,得到所述待检测数据库的最终检测结果;其中,所述最终检测结果包括以下至少一项:每一目标检测规则的规则名称、规则等级、规则描述信息、与该目标检测规则相匹配的语句的数目、语句优化方式和查询链接;所述查询链接用于获取与该目标检测规则相匹配的语句。
13.可选的,所述装置还包括:存储模块,用于在所述第二确定模块执行基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果之后,执行将所述待检测数据库的最终检测结果存储至结果存储数据库;接收模块,用于接收用户输入的查询指令;第三确定模块,用于确定所述查询指令所指示的数据库,作为待查询数据库;显示模块,用于从所述结果存储数据库中,获取所述待查询数据库的最终检测结果,并显示获取到的所述待查询数据库的最终检测结果。
14.可选的,所述装置还包括:第三获取模块,用于在所述显示模块执行从所述结果存储数据库中,获取所述待查询数据库的最终检测结果之前,执行获取所述用户针对所述待查询数据库的查询权限;所述显示模块,具体用于在所述用户具有针对所述待查询数据库的查询权限的情况下,从所述结果存储数据库中,获取所述待查询数据库的最终检测结果。
15.本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据库检测方法步骤。
16.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据库检测方法步骤。
17.本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据库检测方法。
18.本发明实施例有益效果:本发明实施例提供的一种数据库检测方法,获取待检测数据库的元数据,以及待检测数据库对应的目标检测规则;目标检测规则包括用于对对象定义语句进行检测的检测规则,以及用于对结构化查询语言语句进行检测的检测规则;每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果;基于待检测数据库的元数据,获取针对待检测数据库的,且与目标检测规则对应的语句,作为待检测语句;针对每一待检测语句,确定对应的目标检测规则中与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果;基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果。
19.基于上述处理,可以基于目标检测规则,对针对待检测数据库的各待检测语句进行检测,得到各待检测语句各自的检测结果。进而可以基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果,即,可以实现对应用系统的数据库进行检测。后续可以基于待检测数据库的最终检测结果,确定待检测数据库的稳定性。
20.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
22.图1为本发明实施例提供的一种数据库检测方法的流程图;图2为本发明实施例提供的另一种数据库检测方法的流程图;图3为本发明实施例提供的另一种数据库检测方法的流程图;图4为本发明实施例提供的另一种数据库检测方法的流程图;图5为本发明实施例提供的最终检测结果的一种显示页面;图6为本发明实施例提供的最终检测结果的另一种显示页面;图7为本发明实施例提供的另一种数据库检测方法的流程图;图8为本发明实施例提供的另一种数据库检测方法的流程图;图9为本发明实施例提供的另一种数据库检测方法的流程图;图10为本发明实施例提供的一种数据库检测装置的结构图;图11为本发明实施例提供的一种电子设备的结构图。
具体实施方式
23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
24.为了对应用系统的数据库进行检测,以确定应用系统的稳定性,本发明实施例提供了一种数据库检测方法,该方法应用于电子设备。电子设备可以基于本发明实施例提供的方法,在已经开发完成的应用系统上线之前,对针对该应用系统的数据库的待检测语句(即对象定义语句和结构化查询语言(sql)语句)进行检测,确定各待检测语句各自的检测结果。进而,可以基于各待检测语句各自的检测结果,得到该应用系统的数据库的最终检测结果,以确定该应用系统的数据库的稳定性。后续,则可以基于该应用系统的数据库的稳定性,确定该应用系统的稳定性。
25.参见图1,图1为本发明实施例提供的一种数据库检测方法的流程图,该方法应用于电子设备,该方法可以包括以下步骤:s101:获取待检测数据库的元数据,以及待检测数据库对应的目标检测规则。
26.其中,目标检测规则包括用于对对象定义语句进行检测的检测规则,以及用于对结构化查询语言语句进行检测的检测规则。每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果。
27.s102:基于待检测数据库的元数据,获取针对待检测数据库的,且与目标检测规则对应的语句,作为待检测语句。
28.s103:针对每一待检测语句,确定对应的目标检测规则中与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果。
29.s104:基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果。
30.基于本发明实施例提供的数据库检测方法,可以基于目标检测规则,对针对待检测数据库的各待检测语句进行检测,得到各待检测语句各自的检测结果。进而可以基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果,即,可以实现对应用系统的数据库进行检测。后续可以基于待检测数据库的最终检测结果,确定待检测数据库的稳定性。
31.针对步骤s101,待检测数据库可以为oracle、sql server、mysql等。待检测数据库的元数据中可以包括待检测数据库的地址、用于访问待检测数据库的用户名和密码等。
32.在本发明的一个实施例中,对象定义语句用于定义数据表时,用于对对象定义语句进行检测的检测规则可以包括以下至少一项:用于表示数据表不具有主键的检测规则和用于表示数据表的外键不具有索引的检测规则。用于对对象定义语句进行检测的检测规则还可以包括用于表示对象的命名规范的检测规则。
33.用于对结构化查询语言语句进行检测的检测规则可以包括以下至少一项:用于表示语句执行时对数据表进行全表扫描的检测规则、用于表示select函数未指定检索字段的检测规则,以及用于表示语句关联的数据表的数目大于预设阈值的检测规则。预设阈值可以根据实际需求设置。
34.针对待检测数据库的对象定义语句为:用于定义针对待检测数据库的对象(例如,数据表,视图等)的语句。针对待检测数据库的结构化查询语言语句为:应用系统访问待检测数据库时所产生的结构化查询语言语句。例如,在应用系统上线之前,可以对应用系统进行运行测试。相应的,应用系统在测试过程中通过结构化查询语言语句访问待检测数据库。
35.每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果。开发人员基于预设的语句设计规范进行数据库设计,相应的,目标检测规则与数据库的语句设计规范相对应。每一目标检测规则中包含的检测条件与对应的语句设计规范相对应,检测条件对应的检测结果用于表示待检测语句是否符合对应的语句设计规范。例如,语句设计规范可以为:数据表的外键具有索引,则对应的检测条件可以包括:数据表的外键具有索引和数据表的外键不具有索引。数据表的外键具有索引对应的检测结果为:符合对应的语句设计规范,数据表的外键不具有索引对应的检测结果为:不符合对应的语句设计规范。
36.一种实现方式中,目标检测规则可以为电子设备中预设的所有检测规则。待检测数据库可以为用于存储应用系统的业务数据的所有数据库。
37.另一种实现方式中,相应的,在图1的基础上,参见图2,步骤s101可以包括以下步骤:
s1011:接收用户输入的检测指令。
38.其中,检测指令中携带有规则标识和数据库标识。
39.s1012:从预设的多个检测规则中,确定规则标识所指示的检测规则,得到目标检测规则。
40.s1013:获取数据库标识所指示的待检测数据库的元数据。
41.当用户需要对一个应用系统的数据库进行检测时,用户可以向电子设备输入携带有规则标识和该应用系统的数据库的数据库标识的检测指令。规则标识可以为检测规则的名称,数据库标识可以为数据库的名称。
42.相应的,电子设备在接收到用户输入的检测指令时,可以提取检测指令中携带的规则标识和数据库标识。然后,电子设备可以从预设的多个检测规则中,确定规则标识所指示的目标检测规则,以及从该应用系统的多个数据库中,确定数据库标识所指示的待检测数据库,并获取待检测数据库的元数据。
43.待检测数据库的元数据可以为预先存储于电子设备的,或者待检测数据库的元数据也可以为用户输入的检测指令中携带的。
44.后续,电子设备可以基于目标检测规则,对待检测数据库的进行检测,以确定待检测数据库的稳定性。
45.基于上述处理,电子设备可以按照用户指示的检测规则,对用户指示的待检测数据库进行检测,可以满足用户的个性化需求,提高用户体验。
46.在本发明的一个实施例中,在图1的基础上,参见图3,步骤s102可以包括以下步骤:s1021:按照待检测数据库的元数据,获取待检测数据库的数据字典。
47.s1022:基于目标检测规则,在待检测数据库的数据字典中进行查找,得到与目标检测规则对应的语句,作为待检测语句。
48.数据字典是对于数据库中的数据对象或者数据项目的描述的集合,用户可以访问数据库的数据字典,以查询数据对象(或数据项目)的描述。
49.待检测数据库的元数据中可以包括待检测数据库的地址。电子设备可以按照待检测数据库的地址,从待检测数据库中获取数据字典。然后,电子设备可以基于目标检测规则,在待检测数据库的数据字典中进行查找,得到与目标检测规则对应的待检测语句。针对待检测数据库的,且与目标检测规则对应的待检测语句包括:针对待检测数据库的对象定义语句和结构化查询语言语句。
50.基于上述处理,通过待检测数据库的数据字典获取待检测语句,不需要访问待检测数据库中的业务数据。相应的,不需要设置访问待检测数据库中的业务数据的权限信息,也不需要在应用系统所运行的设备中,部署用于基于待检测数据库中的业务数据获取待检测语句的客户端,对应用系统的侵入性较小,可以保证应用系统的安全性。
51.针对步骤s103,针对每一待检测语句,在获取到该待检测语句之后,电子设备可以从各目标检测规则中,确定该待检测语句对应的目标检测规则。例如,一个待检测语句为对象定义语句,该待检测语句对应的目标检测规则为:用于对对象定义语句进行检测的检测规则。
52.然后,电子设备可以从对应的目标检测规则包含的检测条件中,确定与该待检测
语句相匹配的检测条件,并确定与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果。
53.例如,对应的目标检测规则中与该待检测语句相匹配的检测条件可以包括:数据表的外键具有索引,对应的检测结果为:符合对应的语句设计规范;以及数据表的外键不具有索引,对应的检测结果为:不符合对应的语句设计规范。电子设备可以判断该待检测语句对应的数据表的外键是否具有索引,如果该待检测语句对应的数据表的外键具有索引,电子设备可以确定该待检测语句的检测结果为:符合对应的语句设计规范。如果该待检测语句对应的数据表的外键不具有索引,电子设备可以确定该待检测语句的检测结果为:不符合对应的语句设计规范。
54.针对步骤s104,在得到各待检测语句各自的检测结果后,电子设备可以对各待检测语句各自的检测结果进行统计,得到待检测数据库的最终检测结果。例如,电子设备可以统计针对待检测数据库的待检测语句中,与对应的目标检测规则相匹配的语句的数目,得到待检测数据库的最终检测结果。与对应的目标检测规则相匹配的语句的数目可以包括:检测结果为不符合对应的语句设计规范的语句的数目,和/或,检测结果为符合对应的语句设计规范的语句的数目。
55.在本发明的一个实施例中,步骤s104可以包括以下步骤:对各待检测语句各自的检测结果进行统计,得到待检测数据库的最终检测结果。
56.其中,最终检测结果包括以下至少一项:每一目标检测规则的规则名称、规则等级、规则描述信息、与该目标检测规则相匹配的语句的数目、语句优化方式和查询链接;查询链接用于获取与该目标检测规则相匹配的语句。
57.检测规则的规则等级与该检测规则的重要程度相对应。例如,一个检测规则比较重要时,该检测规则的规则等级较高。对于规则等级较高的检测规则,电子设备每一次对待检测语句进行检测时,均会确定该检测规则确定为目标检测规则,也就是电子设备会基于等级较高的检测规则对每一个待检测语句进行检测。
58.检测规则的规则描述信息可以为该检测规则的作用描述信息,例如,一个检测规则的规则描述信息可以为:用于对数据表是否具有主键进行检测。
59.与该目标检测规则相匹配的语句的语句优化方式可以包括:针对检测结果为不符合对应的语句设计规范的语句的优化方式。开发人员可以按照对应的语句优化方式,对不符合该检测规则对应的语句设计规范的语句进行优化,以提高待检测数据库的稳定性。
60.后续,可以基于待检测数据库的最终检测结果,确定待检测数据库的稳定性。一种实现方式中,电子设备可以确定与对应的目标检测规则相匹配的检测结果为不符合对应的语句设计规范的语句,在针对待检测数据库的待检测语句中的占比。然后,电子设备可以基于确定出的比值确定待检测数据库的稳定性。例如,当与对应的目标检测规则相匹配的检测结果为不符合对应的语句设计规范的语句,在针对待检测数据库的待检测语句中占比达到60%时,确定待检测数据库的稳定性较低。进而,可以按照对应的语句优化方式,对不符合该检测规则对应的语句设计规范的语句进行优化,以提高待检测数据库的稳定性,进而提高应用系统的稳定性。
61.在本发明的一个实施例中,在图1的基础上,参见图4,在步骤s104之后,该方法还可以包括以下步骤:
s105:将待检测数据库的最终检测结果存储至结果存储数据库。
62.s106:接收用户输入的查询指令。
63.s107:确定查询指令所指示的数据库,作为待查询数据库。
64.s108:从结果存储数据库中,获取待查询数据库的最终检测结果,并显示获取到的待查询数据库的最终检测结果。
65.在得到待检测数据库的最终检测结果之后,电子设备还可以将待检测数据库的最终检测结果存储至预设的结果存储数据库。结果存储数据库可以为mysql。后续,电子设备可以从结果存储数据库中,获取用户指示的数据库的检测结果,并向用户进行展示。
66.当用户需要查询一个数据库的最终检测结果时,用户可以向电子设备输入携带有该数据库的数据库标识的查询指令。相应的,电子设备可以确定查询指令中携带的数据库标识所指示的数据库为待查询数据库。然后,电子设备可以从结果存储数据库中,获取待查询数据库的最终检测结果。进而,电子设备显示待查询数据库的最终检测结果,以供用户浏览。
67.一种实现方式中,电子设备可以通过sql语句直接访问结果存储数据库,得到待查询数据库的最终检测结果。电子设备还可以按照excel表格、网页等方式,显示待查询数据库的最终检测结果。
68.在本发明的一个实施例中,电子设备按照excel表格的方式,显示待查询数据库的最终检测结果。示例性的,参见图5,图5为本发明实施例提供的最终检测结果的一种显示页面。图5中的审核规则为本发明实施例中的检测规则。
69.针对图5中所示的每一检测规则,“推荐性”表示该检测规则的规则等级。例如,名称为规则1的检测规则的规则等级为“推荐”。名称为规则2的检测规则的规则等级为“强制”。规则2的规则等级高于规则1的规则等级,也就是说,规则2的重要程度高于规则1的重要程度。
[0070]“违反次数”表示不符合该检测规则对应的语句设计规范的语句的数目。例如,不符合规则1对应的语句设计规范的语句的数目为15。
[0071]“规则描述”表示该检测规则的规则描述信息。“改进建议”表示针对不符合该检测规则对应的语句设计规范的语句的语句优化方式。
[0072]“详细信息”表示不符合该检测规则对应的语句设计规范的语句的查询链接。例如,当用户需要查询有哪些语句不符合规则1对应的语句设计规范时,用户可以点击规则1所在行的“请点击”按钮。相应的,电子设备可以获取不符合规则1对应的语句设计规范的所有语句,并进行显示。
[0073]
在本发明的一个实施例中,电子设备按照网页的方式,显示待查询数据库的最终检测结果。示例性的,参见图6,图6为本发明实施例提供的最终检测结果的另一种显示页面。图6中的审核规则为本发明实施例中的检测规则。
[0074]
当用户需要查询一个数据库的最终检测结果时,用户可以在图6所示的页面中“请选择数据库”选项处,选择需要查询的数据库的数据库标识。并且,电子设备还可以在“请选择审核日期”选项处,选择查询日期,查询日期表示对数据库进行检测的时间。例如,用户选择的查询日期为:2022-2-23至2022-2-24,表示用户需要查询在2022-2-23至2022-2-24内,进行检测的数据库的最终检测结果。然后,用户可以点击“开始检索”按钮,以向电子设备输
入携带有查询日期和待查询数据库的数据库标识的查询指令。
[0075]
相应的,电子设备可以确定查询指令指示的待查询数据库,并从结果存储数据库中获取查询日期内的,待查询数据库的最终检测结果。然后,电子设备可以按照图6所示的形式显示待查询数据库的最终检测结果。
[0076]
针对图6中所示的每一检测规则,“推荐性”表示该检测规则的规则等级。例如,名称为规则1的检测规则的规则等级为“强制”。名称为规则3的检测规则的规则等级为“推荐”。规则1的规则等级高于规则3的规则等级,也就是说,规则1的重要程度高于规则3的重要程度。
[0077]“违反次数”表示不符合该检测规则对应的语句设计规范的语句的数目。例如,不符合规则1对应的语句设计规范的语句的数目为15。
[0078]“规则描述”表示该检测规则的规则描述信息。“改进建议”表示针对不符合该检测规则对应的语句设计规范的语句的语句优化方式。
[0079]“详细信息”表示不符合该检测规则对应的语句设计规范的语句的查询链接。例如,当用户需要查询有哪些语句不符合规则1对应的语句设计规范时,用户可以点击规则1所在行的“点击进入”按钮。相应的,电子设备可以获取不符合规则1对应的语句设计规范的所有语句,并进行显示。
[0080]
另外,当用户需要查询其他数据库的最终检测结果时,用户可以先点击“清空”按钮,以删除上一次选择的数据库标识,然后用户可以在“请选择数据库”选项处重新选择需要查询最终检测结果的数据库的数据库标识。用户还可以点击“返回上级”按钮,电子设备可以显示上一级页面。例如,电子设备接收到用户在查询页面输入的查询指令时,显示图6所示的页面,如果用户在图6所示的页面点击“返回上级”按钮,电子设备可以返回显示查询页面。用户还可以点击“返回主页”按钮,电子设备可以显示对应的主页面。
[0081]
基于上述处理,可以为用户展示用户指示的待查询数据库的最终检测结果,可以满足用户的个性化需求,提高用户体验。并且用户可以通过查询链接定位到不符合检测规则对应的语句设计规范的所有语句,方便后续对不符合检测规则对应的语句设计规范的语句进行改进,可以提高用户体验。
[0082]
在本发明的一个实施例中,在图4的基础上,参见图7,在步骤s108之前,该方法还可以包括以下步骤:s109:获取用户针对待查询数据库的查询权限。
[0083]
相应的,步骤s108可以包括以下步骤:s1081:在用户具有针对待查询数据库的查询权限的情况下,从结果存储数据库中,获取待查询数据库的最终检测结果,并显示获取到的待查询数据库的最终检测结果。
[0084]
电子设备在确定待查询数据库之后,电子设备可以获取用户针对待查询数据库的查询权限。然后,电子设备可以判断用户是否具有针对待查询数据库的查询权限,如果用户具有的针对待查询数据库的查询权限,则电子设备可以从结果存储数据库中,获取待查询数据库的最终检测结果,并显示获取到的待查询数据库的最终检测结果。
[0085]
如果用户不具有针对待查询数据库的查询权限,电子设备可以显示提醒消息,以提醒用户不具有针对待查询数据库的查询权限。
[0086]
基于上述处理,可以向具有查询权限的用户展示用户指示的待查询数据库的最终
检测结果,可以满足用户的个性化需求,提高用户体验。并且不具有查询权限的用户则无法查询待查询数据库的最终检测结果,可以提高数据库的安全性。
[0087]
参见图8,图8为本发明实施例提供的另一种数据库检测方法的流程图。该数据库检测方法应用于数据库检测系统。数据库检测系统包括:待审核数据库、devops(development operations,开发和运维)和数据审核平台。
[0088]
待审核数据库为前述实施例中的待检测数据库。待检测数据库可以为oracle、sql server、mysql等。
[0089]
devops(development operations,开发和运维)表示开发、运维和质量一体的系统。本发明实施例提供的数据库检测方法还可以应用于devops场景中,用于对devops场景中主动检测的待检测语句进行检测,得到待检测语句的检测结果。
[0090]
数据库审核平台为前述实施例中的执行本发明实施例提供的数据库检测方法的电子设备。数据库审核平台包括:数据采集模块、数据配置模块、数据解析模块、数据展示模块和审核资料库。审核资料库为前述实施例中的用于存储待检测数据库的最终检测结果的结果存储数据库,结果存储数据库可以为mysql。
[0091]
数据配置模块可以接收用户输入的预设的多个审核规则(即前述实施例中的检测规则)、预设的多个数据库的元数据,以及不同用户针对数据库的查询权限等。
[0092]
数据采集模块可以从数据配置模块定制审核规则和待审核数据库,并从待审核数据库中自动采集待审核语句(即前述实施例中的待检测语句)。也就是数据采集模块从数据配置模块获取用户指示的目标检测规则和待检测数据库的元数据,并按照待检测数据库的元数据,获取针对待检测数据库的,与目标检测规则对应的待检测语句。待检测语句包括针对待检测数据库的对象定义语句和结构化查询语言语句。
[0093]
然后,数据采集模块可以向数据解析模块发送待审核语句。数据解析模块可以从数据配置模块定制审核规则,也就是数据采集模块向数据解析模块发送待检测语句。数据解析模块可以从数据配置模块获取目标检测规则。数据解析模块还可以基于目标检测规则对待检测语句进行检测,得到待检测句的检测结果。进而,基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果,并将待检测数据库的最终检测结果存储至结果存储数据库。
[0094]
数据展示模块可以从数据配置模块定制展示要求。也就是数据展示模块从数据配置模块获取用户输入的查询指令。然后,数据展示模块可以确定用户指示的,且具有查询权限的待查询数据库,并从结果存储数据库中提取待查询数据库的最终检测结果。进而,数据展示模块展示待查询数据库的最终检测结果。数据展示模块展示待查询数据库的最终检测结果的方式可以包括:sql语句、excel表格和网页等。
[0095]
相应的,用户可以浏览数据展示模块展示的待查询数据库的最终检测结果。用户可以包括:项目经理、设计人员、开发人员和dba(database administrator,数据库管理员)等。
[0096]
基于上述处理,可以对待检测数据库进行检测,得到待检测数据库的最终检测结果。后续,则可以基于待检测数据库的最终检测结果,确定待检测数据库的稳定性。并且,可以按照用户指示的目标检测规则,对用户指示的待检测数据库的进行检测,可以满足用户的个性化需求,提高用户体验。并且,可以向具有查询权限的用户展示用户指示的待查询数
据库的最终检测结果,可以满足用户的个性化需求,提高用户体验,并提高数据库的安全性。
[0097]
参见图9,图9为本发明实施例提供的另一种数据库检测方法的流程图。该数据库检测方法应用于图8所示数据库审核平台。数据库审核平台包括:数据采集模块、数据配置模块、数据解析模块和数据展示模块。待审核数据库为前述实施例中的待检测数据库。审核资料库为前述实施例中的用于存储数据库的最终检测结果的结果存储数据库。
[0098]
用户可以基于数据配置模块进行个性化配置,也就是用户可以向数据配置模块输入配置元数据、审核规则和权限配置。数据配置模块可以接收用户输入的配置元数据、审核规则和权限配置。配置元数据为前述实施例中的数据库的元数据。审核规则为前述实施例中的检测规则。权限配置为前述实施例中的不同用户针对数据库的查询权限。
[0099]
数据采集模块可以从数据配置模块读取配置元数据和审核规则,并基于获取到的配置元数据进行初始化配置,并基于审核规则扫描待审核数据库的数据字典,得到待审核语句(即前述实施例中的待检测语句)。也就是数据采集模块从数据配置模块获取用户指示的目标检测规则和待检测数据库的元数据,并按照待检测数据库的元数据,获取待检测数据库的数据字典。基于目标检测规则在待检测数据库的数据字典中进行查找,得到目标检测规则对应的待检测语句。待检测语句包括:针对待检测数据库的对象定义语句和结构化查询语言语句。
[0100]
然后,数据采集模块可以向数据解析模块发送待检测语句。数据解析模块可以从数据配置模块读取审核规则,根据审核规则分析统计数据,并将审核结果存储至审核资料库。也就是数据解析模块可以从数据配置模块获取目标检测规则,基于目标检测规则对待检测语句进行检测,得到待检测语句的检测结果。基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果,并将待检测数据库的最终检测结果存储至结果存储数据库。
[0101]
数据展示模块可以从数据配置模块读取权限配置,并根据检索条件匹配审核数据,并展示数据。也就是数据展示模块从数据配置模块获取用户输入的查询指令和用户的查询权限。然后,数据展示模块可以确定用户指示的,且具有查询权限的待查询数据库,并从结果存储数据库中获取待查询数据库的最终检测结果。进而,数据展示模块可以展示待查询数据库的最终检测结果。数据展示模块展示待查询数据库的最终检测结果的方式可以包括:sql语句、excel表格和网页等。
[0102]
基于上述处理,可以对待检测数据库进行检测,得到待检测数据库的最终检测结果。后续,则可以基于待检测数据库的最终检测结果,确定待检测数据库的稳定性。并且,可以按照用户指示的目标检测规则,对用户指示的待检测数据库的进行检测,可以满足用户的个性化需求,提高用户体验。并且,可以向具有查询权限的用户展示用户指示的待查询数据库的最终检测结果,可以满足用户的个性化需求,提高用户体验,并提高数据库的安全性。
[0103]
与图1的方法实施例相对应,参见图10,图10为本发明实施例提供的一种数据库检测装置的结构图,所述装置包括:第一获取模块1001,用于获取待检测数据库的元数据,以及所述待检测数据库对应的目标检测规则;其中,所述目标检测规则包括用于对对象定义语句进行检测的检测规
则,以及用于对结构化查询语言语句进行检测的检测规则;每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果;第二获取模块1002,用于基于所述待检测数据库的元数据,获取针对所述待检测数据库的,且与所述目标检测规则对应的语句,作为待检测语句;第一确定模块1003,用于针对每一待检测语句,确定对应的目标检测规则中与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果;第二确定模块1004,用于基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果。
[0104]
可选的,所述第一获取模块1001,具体用于接收用户输入的检测指令;其中,所述检测指令中携带有规则标识和数据库标识;从预设的多个检测规则中,确定所述规则标识所指示的检测规则,得到目标检测规则;获取所述数据库标识所指示的待检测数据库的元数据。
[0105]
可选的,所述第二获取模块1002,具体用于按照所述待检测数据库的元数据,获取所述待检测数据库的数据字典;基于所述目标检测规则,在所述待检测数据库的数据字典中进行查找,得到与所述目标检测规则对应的语句,作为待检测语句。
[0106]
可选的,所述第二确定模块1004,具体用于对各待检测语句各自的检测结果进行统计,得到所述待检测数据库的最终检测结果;其中,所述最终检测结果包括以下至少一项:每一目标检测规则的规则名称、规则等级、规则描述信息、与该目标检测规则相匹配的语句的数目、语句优化方式和查询链接;所述查询链接用于获取与该目标检测规则相匹配的语句。
[0107]
可选的,所述装置还包括:存储模块,用于在所述第二确定模块1004执行基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果之后,执行将所述待检测数据库的最终检测结果存储至结果存储数据库;接收模块,用于接收用户输入的查询指令;第三确定模块,用于确定所述查询指令所指示的数据库,作为待查询数据库;显示模块,用于从所述结果存储数据库中,获取所述待查询数据库的最终检测结果,并显示获取到的所述待查询数据库的最终检测结果。
[0108]
可选的,所述装置还包括:第三获取模块,用于在所述显示模块执行从所述结果存储数据库中,获取所述待查询数据库的最终检测结果之前,执行获取所述用户针对所述待查询数据库的查询权限;所述显示模块,具体用于在所述用户具有针对所述待查询数据库的查询权限的情况下,从所述结果存储数据库中,获取所述待查询数据库的最终检测结果。
[0109]
基于本发明实施例提供的数据库检测装置,可以基于目标检测规则,对针对待检测数据库的各待检测语句进行检测,得到各待检测语句各自的检测结果。进而可以基于各待检测语句各自的检测结果,得到待检测数据库的最终检测结果,即,可以实现对应用系统的数据库进行检测。后续可以基于待检测数据库的最终检测结果,确定待检测数据库的稳
定性。
[0110]
本发明实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,存储器1103,用于存放计算机程序;处理器1101,用于执行存储器1103上所存放的程序时,实现如下步骤:获取待检测数据库的元数据,以及所述待检测数据库对应的目标检测规则;其中,所述目标检测规则包括用于对对象定义语句进行检测的检测规则,以及用于对结构化查询语言语句进行检测的检测规则;每一目标检测规则包含至少一个检测条件,以及该至少一个检测条件对应的检测结果;基于所述待检测数据库的元数据,获取针对所述待检测数据库的,且与所述目标检测规则对应的语句,作为待检测语句;针对每一待检测语句,确定对应的目标检测规则中与该待检测语句相匹配的检测条件对应的检测结果,得到该待检测语句的检测结果;基于各待检测语句各自的检测结果,得到所述待检测数据库的最终检测结果。
[0111]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0112]
通信接口用于上述电子设备与其他设备之间的通信。
[0113]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0114]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0115]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据库检测方法的步骤。
[0116]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据库检测方法。
[0117]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机
指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk (ssd))等。
[0118]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0119]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0120]
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1