[發明專利]一種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.szxzyx.cn/pat/books/201710731586.2/1.html,轉載請聲明來源鉆瓜專利網。





