[发明专利]一种SQL语句分析方法、装置、电子设备及存储介质在审
申请号: | 202011253828.X | 申请日: | 2020-11-11 |
公开(公告)号: | CN112395305A | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 孙长平;卢中华;郭凯;卢焱 | 申请(专利权)人: | 中国人寿保险股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F21/56 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 郑颖颖 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 语句 分析 方法 装置 电子设备 存储 介质 | ||
1.一种SQL语句分析方法,其特征在于,包括:
对当前版本的待分析应用进行java字节码的静态分析和动态调用的扫描,得到全量SQL语句并进行合并,得到当前版本的SQL语句集合;
判断数据库中是否存在先前版本的SQL语句集合,当存在时,按照类名,方法名和SQL语句比较当前版本的SQL语句集合与数据库中的先前版本的SQL语句集合,得到当前版本的增量SQL语句;
根据SQL特征信息分析所述增量SQL语句,判断是否存在危险SQL语句和慢SQL语句,当存在时进行预警。
2.根据权利要求1所述的语句分析方法,其特征在于,对当前版本的待分析应用进行java字节码的静态分析和动态调用的扫描,得到全量SQL语句并进行合并,得到当前版本的SQL语句集合,具体包括:
接收待分析应用的不同类型的参数,所述参数包括待分析的压缩包、系统标识、名称和版本号,并将符合格式要求的文件加入classloader中;
对class文件中的DAO字节码进行静态分析,获取对应的访问类的包路径或类名,得到访问数据库的方法;
以方法为粒度进行扫描,提炼所有数据库的访问规则,得到静态常量的SQL语句和执行SQL语句的访问数据库的方法的调用方法;
将调用方法下的不同分支对应的字节码绘制为有向图;通过有向图访问算法,查找每个执行路径的SQL语句,所述SQL语句包括存在SQL特征的静态常量的SQL语句和以输入参数形式传入的SQL语句;
将所得的静态常量的SQL语句和执行路径的SQL语句,进行去重和参数合并,得到当前版本的SQL语句集合。
3.根据权利要求2所述的语句分析方法,其特征在于,所述将符合格式要求的文件加入classloader中具体包括:
当压缩包为war包时,通过Java的ZipFile解压war包,并分别把解压后的class文件和jar文件加入classloader中;当压缩包为jar包时,直接加入classloader中。
4.根据权利要求2所述的语句分析方法,其特征在于,所述以方法为粒度进行扫描,提炼所有数据库的访问规则,得到静态常量的SQL语句和执行SQL语句的访问数据库的方法的调用方法具体包括:
查找方法中存在数据库访问的调用方法,在与方法对应的数据库的api中提取字节码中的类SQL语句。
5.根据权利要求2所述的语句分析方法,其特征在于,所述查找每个执行路径的SQL语句具体包括:
根据SQL特征信息分析每个执行路径,查找每个执行路径的静态的SQL语句;
伪造单一类型的输入参数,通过java反射调用,得到以输入参数形式传入的SQL语句。
6.根据权利要求1所述的语句分析方法,其特征在于,根据SQL特征信息分析所述增量SQL语句,判断是否存在危险SQL语句包括:
拆解增量SQL语句,解析是否存在update或delete;
当存在时,判断update或delete之后是否存在where条件;当存在where条件时,拆解where条件,判断是否永远为真;
当update或delete之后不存在where条件,或者存在永远为真的where条件时,判断为存在危险SQL语句。
7.根据权利要求1所述的语句分析方法,其特征在于,根据SQL特征信息分析所述增量SQL语句,判断是否存在慢SQL语句包括:
将当前版本的待分析应用与对应的数据库连接;
获取增量SQL语句的执行计划;
保存执行计划,返回SQL执行计划结果的集合;
比较执行结果的集合和预设的慢SQL的指标,当存在与所述指标中的任一指标对应的增量SQL语句时,判断为存在慢SQL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人寿保险股份有限公司,未经中国人寿保险股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011253828.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种格构柱定位装置及施工方法
- 下一篇:一种轮毂型铠装光缆