[发明专利]一种DB2数据库的存储过程命令及参数值提取方法有效
申请号: | 201710731586.2 | 申请日: | 2017-08-23 |
公开(公告)号: | CN107491538B | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 陆怀军;范渊;吴永越;郑学新;刘韬 | 申请(专利权)人: | 成都安恒信息技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242 |
代理公司: | 成都君合集专利代理事务所(普通合伙) 51228 | 代理人: | 张鸣洁 |
地址: | 610000 四川省成都市高新区*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 db2 数据库 存储 过程 命令 参数 提取 方法 | ||
1.一种DB2数据库的存储过程命令及参数值提取方法,其特征在于,包括:
S1)DB2协议审计系统中的DB2数据库协议模块获取从客户端发往服务端的所有DB2协议数据包;
S2)所述DB2数据库协议模块检查、解析所述数据包,提取数据包的特征值,判断数据包是否为存储过程名称数据包或者存储过程参数数据包;
S3)所述DB2数据库协议模块从所述存储过程名称数据包中解析、提取存储过程命令,将存储过程命令和所述存储过程参数数据包交给存储过程解析模块;
S4)所述存储过程解析模块从存储过程参数数据包中提取存储过程命令参数;
S5)所述存储过程解析模块将提取的存储过程命令和存储过程命令参数值组合成完整命令;
所述S2)具体包括:DB2数据库协议模块检查获取到的数据包的通信协议头部CODPNT的值,如果CODPNT的值为EXCSQLSTT,则判定所述数据包为存储过程名称数据包,并提取存储过程名称;如果CODPNT的值为SQLDTA,则判定所述数据包为存储过程参数数据包,并将存储过程名称及SQLDTA数据包交给存储过程解析模块;
所述S3)具体包括:
S3.1)从存储过程名称数据包EXCSQLSTT中提取变量prcnam对应的值,所述变量prcnam对应的值即存储过程命令对应的代号;
S3.2)从存储过程参数数据包SQLDTA中提取FDODSC数据块,并解析FDODSC数据块的数据结构,然后进入下一步;
S3.3)找到所述SQLDTA中的FDODTA数据块,提取FDODTA数据块的数据;
所述S4)中具体包括:将所述S3.3)中提取的元素对应的填入所述S3.1)中提取的命令名称固定的参数列表中,组成完整命令。
2.根据权利要求1所述的一种DB2数据库的存储过程命令及参数值提取方法,其特征在于,所述S2)中的存储过程解析模块包括:
数据结构解析模块:用于解析、提取包含存储过程的数据包的存储过程命令参数值的数据结构;
数据解析模块:用于解析、提取包含存储过程的数据包的存储过程命令参数值的数据;
命令-参数值匹配模块:用于将提取的存储过程命令和存储过程命令参数值组合成完整命令。
3.根据权利要求2所述的一种DB2数据库的存储过程命令及参数值提取方法,其特征在于,所述S3.2)包括:
S3.2.1)解析所述FDODSC数据块的第N层结构体,找到第N层结构体包含的M(N+1)个元素,分别为I(N+1)元素,I初值为1,N初值为1,其中,M(N+1)表示第N+1层的元素个数为M,I(N+1)元素为第N+1层第I个元素,I=1,2,3,……, M(N+1) ;
S3.2.2)判断第N+1层的I(N+1)元素中是否包含结构体:若第I(N+1)元素包含结构体,则进入S3.2.2.1),否则进入S3.2.2.2);
S3.2.2.1)解析第I(N+1)元素的结构体,得到第N+2层的M(N+2)个元素;
N=N+1;
I(N+1)=1;
返回S3.2.2);
S3.2.2.2)将第I(N+1)元素保存至数据结构解析模块,进入下一步S3.2.2.3);
S3.2.2.3)I(N+1)= I(N+1)+1;
若I(N+1)≤M(N+1),返回S3.2.2);
否则进入下一步S3.2.3);
S3.2.3)N=N-1;
若N≥1,I(N+1)= I(N+1)+1,返回S3.2.2);
否则,数据结构解析结束。
4.根据权利要求3所述的一种DB2数据库的存储过程命令及参数值提取方法,其特征在于,所述S3.3)包括:
S3.3.1)检索所述SQLDTA中的FDODTA数据块中的第N层结构体,找到第N层结构体包含的M(N+1)个元素,分别为I(N+1)元素,I初值为1,N初值为1,其中,M(N+1)表示第N+1层的元素个数为M,I(N+1)元素为第N+1层第I个元素,I=1,2,3,……, M(N+1) ;
S3.3.2)判断第N+1层的第I(N+1)元素中是否包含结构体:若第I(N+1)元素包含结构体,则进入S3.3.2.1),否则进入S3.3.2.2);
S3.3.2.1)检索第I(N+1)元素的结构体中的M(N+2)个元素,
若第I(N+2)个元素为结构体,则
N=N+1;
I(N+1)=1;
返回S3.3.2);
否则,进入S3.3.2.2);
S3.3.2.2)从数据结构解析模块提取第I(N+1)个元素,进入下一步S3.3.2.3);
S3.3.2.3)I(N+1)= I(N+1)+1;
若I(N+1)≤M(N+1),返回S3.3.2);
否则进入下一步S3.3.3);
S3.3.3)N=N-1;
若N≥1,I(N+1)= I(N+1)+1,返回S3.3.2);
否则,数据解析完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都安恒信息技术有限公司,未经成都安恒信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710731586.2/1.html,转载请声明来源钻瓜专利网。