本技术涉及计算机,特别是涉及一种数据库的审计方法以及装置、介质、设备。
背景技术:
1、随着网络时代的发展,数据库得到了广泛的应用。为了保证数据库的正常运行,需要对数据库的相关问题进行审计,例如,索引是否缺失、字段设计是否合理、字符集是否相同等。
2、然而,目前由于敏捷开发的时效性,通常需要数据库上线到生产之后,才能够审计数据库是否存在上述缺陷,导致数据库审计不及时。
技术实现思路
1、有鉴于此,本技术提供一种数据库的审计方法以及装置、介质、设备,主要目的在于现有由于敏捷开发的时效性,通常需要数据库上线到生产之后,才能够审计数据库是否存在上述缺陷,导致数据库审计不及时的问题。
2、依据本技术一个方面,提供了一种数据库的审计方法,包括:
3、获取客户端与服务端之间的通信数据,将所述通信数据解析为至少一个结构化查询语言语句,并执行各个所述结构化查询语言语句,根据对应的执行结果生成第一审计结果;
4、获取目标数据库内的任意表元信息,并判断各个所述表元信息是否符合对应的预设表元信息设置规则,以生成第二审计结果;
5、基于所述第一审计结果以及所述第二审计结果生成关于所述目标数据库的优化报告。
6、优选的,所述执行各个所述结构化查询语言语句,根据对应的执行结果生成第一审计结果,具体包括:
7、执行各个所述结构化查询语言语句,生成多个执行结果,并记录生成各个所述执行结果所需的执行时长以及执行路径;
8、按照下述方法逐个审计各个所述结构化查询语言语句,得到各个所述结构化查询语言语句的第三审计结果:
9、若所述执行时长超过预设时长阈值,和/或,所述执行路径与预计执行计划不一致,则将所述结构化查询语言语句标记为异常,并与异常原因进行映射,生成所述结构化查询语言语句的第三审计结果;
10、根据多个所述第三审计结果生成第一审计结果。
11、优选的,所述获取客户端与服务端之间的通信数据,将所述通信数据解析为至少一个结构化查询语言语句,具体包括:
12、获取客户端与服务端之间的通信数据包;
13、基于数据解析工具提取所述通信数据包中所包含的通信数据,并根据数据库协议将所述通信数据解析为至少一个结构化查询语言语句。
14、优选的,所述获取客户端与服务端之间的通信数据,将所述通信数据解析为至少一个结构化查询语言语句,并执行各个所述结构化查询语言语句,根据对应的执行结果生成第一审计结果之前,所述方法还包括:
15、预先设置审计时间间隔,并按照所述审计时间间隔周期性获取所述客户端与服务端之间的通信数据以及所述目标数据库内的任意表元信息,以对所述目标数据库进行审计;
16、和/或,响应于针对所述目标数据库的审计指令,获取所述客户端与服务端之间的通信数据以及所述目标数据库内的任意表元信息,以对所述目标数据库进行审计。
17、优选的,所述基于所述第一审计结果以及所述第二审计结果生成关于所述目标数据库的优化报告,具体包括:
18、根据各个所述第三审计结果中的异常原因获取各个所述异常结构化查询语言语句的优化建议;
19、按照预设的优化优先等级将各个所述异常结构化查询语言语句的优化建议以及所述第二审计结果对应的表元信息优化建议进行排序,以生成关于所述目标数据库的优化报告。
20、优选的,所述表元信息包括数据库名称、数据表名称、数据列名称、数据列的数据类型以及长度、数据列的约束、数据表的索引、数据表的字符集、数据表的比较规则。
21、优选的,所述结构化查询语言语句包括数据查询语言语句以及数据操作语言语句。
22、依据本技术另一个方面,提供了一种数据库的审计装置,包括:
23、第一审计模块,用于获取客户端与服务端之间的通信数据,将所述通信数据解析为至少一个结构化查询语言语句,并执行各个所述结构化查询语言语句,根据对应的执行结果生成第一审计结果;
24、第二审计模块,用于获取目标数据库内的任意表元信息,并判断各个所述表元信息是否符合对应的预设表元信息设置规则,以生成第二审计结果;
25、生成模块,用于基于所述第一审计结果以及所述第二审计结果生成关于所述目标数据库的优化报告。
26、优选的,所述第一审计模块,具体包括:
27、执行单元,用于执行各个所述结构化查询语言语句,生成多个执行结果,并记录生成各个所述执行结果所需的执行时长以及执行路径;
28、审计单元,用于按照下述方法逐个审计各个所述结构化查询语言语句,得到各个所述结构化查询语言语句的第三审计结果:
29、若所述执行时长超过预设时长阈值,和/或,所述执行路径与预计执行计划不一致,则将所述结构化查询语言语句标记为异常,并与异常原因进行映射,生成所述结构化查询语言语句的第三审计结果;
30、生成单元,用于根据多个所述第三审计结果生成第一审计结果。
31、优选的,所述第一审计模块,还包括:
32、获取单元,用于获取客户端与服务端之间的通信数据包;
33、解析单元,用于基于数据解析工具提取所述通信数据包中所包含的通信数据,并根据数据库协议将所述通信数据解析为至少一个结构化查询语言语句。
34、优选的,所述第一审计模块之前,所述装置还包括设置模块,用于:
35、预先设置审计时间间隔,并按照所述审计时间间隔周期性获取所述客户端与服务端之间的通信数据以及所述目标数据库内的任意表元信息,以对所述目标数据库进行审计;
36、和/或,响应于针对所述目标数据库的审计指令,获取所述客户端与服务端之间的通信数据以及所述目标数据库内的任意表元信息,以对所述目标数据库进行审计。
37、优选的,所述生成模块,具体用于:
38、根据各个所述第三审计结果中的异常原因获取各个所述异常结构化查询语言语句的优化建议;
39、按照预设的优化优先等级将各个所述异常结构化查询语言语句的优化建议以及所述第二审计结果对应的表元信息优化建议进行排序,以生成关于所述目标数据库的优化报告。
40、优选的,所述表元信息包括数据库名称、数据表名称、数据列名称、数据列的数据类型以及长度、数据列的约束、数据表的索引、数据表的字符集、数据表的比较规则。
41、优选的,所述结构化查询语言语句包括数据查询语言语句以及数据操作语言语句。
42、根据本技术的又一方面,提供了一种存储介质,所述存储介质中存储有至少一条可执行指令,所述可执行指令使处理器执行如上述数据库的审计方法对应的操作。
43、根据本技术的再一方面,提供了一种终端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
44、所述存储器用于存放至少一条可执行指令,所述可执行指令使所述处理器执行上述数据库的审计方法对应的操作。
45、借由上述技术方案,本技术实施例提供的技术方案至少具有下列优点:
46、本技术提供了一种数据库的审计方法以及装置、介质、设备,首先获取客户端与服务端之间的通信数据,将所述通信数据解析为至少一个结构化查询语言语句,并执行各个所述结构化查询语言语句,根据对应的执行结果生成第一审计结果;其次获取目标数据库内的任意表元信息,并判断各个所述表元信息是否符合对应的预设表元信息设置规则,以生成第二审计结果;最后基于所述第一审计结果以及所述第二审计结果生成关于所述目标数据库的优化报告。与现有技术相比,本技术实施例通过定时或临时获取客户端与服务端之间的通信数据,转换为sql(结构化查询语言)语句,并执行该sql语句,筛选出超过预设时长阈值以及未利用索引的sql语句,生成第一审计结果;以及获取目标数据库内的任意表元信息,并筛选出不符合预设表元信息设置规则的表元信息,生成第二审计结果;最后根据两个审计结果生成优化报告,实现了在开发中对数据库进行实时审查的需求,改善了现有数据库审计不及时的问题。
47、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。