[發(fā)明專利]旁路解析與還原達夢數(shù)據(jù)庫協(xié)議中SQL命令和參數(shù)的方法在審
| 申請?zhí)枺?/td> | 201910839724.8 | 申請日: | 2019-09-06 |
| 公開(公告)號: | CN112468430A | 公開(公告)日: | 2021-03-09 |
| 發(fā)明(設(shè)計)人: | 龔建國;何建鋒 | 申請(專利權(quán))人: | 西安交大捷普網(wǎng)絡(luò)科技有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L29/08;G06F16/25 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710075 陜西省*** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 旁路 解析 還原 數(shù)據(jù)庫 協(xié)議 sql 命令 參數(shù) 方法 | ||
本發(fā)明公開了旁路解析與還原達夢數(shù)據(jù)庫協(xié)議中SQL命令和參數(shù)的方法,通過抓取、過濾、解析、分析DM達夢數(shù)據(jù)庫的應(yīng)用系統(tǒng)客戶端與DM達夢數(shù)據(jù)庫之間的通訊協(xié)議的Data類型數(shù)據(jù)包的負載部分,將SQL語句進行有效的分解,分析得到SQL語句及其所帶的參數(shù);而且采用旁路方式,不需要對現(xiàn)有系統(tǒng)進行網(wǎng)絡(luò)改動或配置修改,不影響系統(tǒng)的正常運行。
技術(shù)領(lǐng)域
本發(fā)明屬于通訊與網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其是涉及一種旁路解析與還原達夢數(shù)據(jù)庫協(xié)議中SQL命令和參數(shù)的方法。
背景技術(shù)
自棱鏡門事件發(fā)生以來,信息技術(shù)國產(chǎn)化的呼聲不斷高漲,繼微軟Windows8操作系統(tǒng)未入圍政府采購行列之后,從應(yīng)用、中間件到基礎(chǔ)軟件和硬件,幾乎所有層面的產(chǎn)品都在加速國產(chǎn)化進程,國產(chǎn)產(chǎn)品的應(yīng)用也必然會愈發(fā)廣泛。
國產(chǎn)數(shù)據(jù)庫廠商達夢推出了完全自主知識產(chǎn)權(quán)的高性能數(shù)據(jù)庫管理系統(tǒng)7.0版本,簡稱DM7,已經(jīng)被許多用戶采用于實際業(yè)務(wù)。但是跟通用的國際數(shù)據(jù)庫相比,現(xiàn)有技術(shù)中缺乏能直接提取出達夢數(shù)據(jù)庫中的SQL命令的方案,無法滿足SQL命令的還原要求,也無法還原數(shù)據(jù)庫與客戶端交互式操作產(chǎn)生的SQL命令中的參數(shù)。
發(fā)明內(nèi)容
針對上述的現(xiàn)有技術(shù)存在的不足,本發(fā)明旨在提供一種針對達夢數(shù)據(jù)庫的,通過旁路抓取數(shù)據(jù)包,解析和還原出SQL命令和參數(shù)的方法。
為了實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案。
旁路解析與還原達夢數(shù)據(jù)庫協(xié)議中SQL命令和參數(shù)的方法,包括:
旁路獲取客戶端流向數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)包,根據(jù)端口號過濾得到流向達夢數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)包,初步解析得到應(yīng)用層數(shù)據(jù);
解析應(yīng)用層數(shù)據(jù)頭部,過濾得到待解析的數(shù)據(jù)包及其頭部包類型的值,根據(jù)頭部包類型的值確定應(yīng)用層數(shù)據(jù)類型;
分別解析處理不同類型的應(yīng)用層數(shù)據(jù)體,還原得到相應(yīng)的的SQL命令和參數(shù)。
上述的解析數(shù)據(jù)包得到應(yīng)用層數(shù)據(jù),包括:將核心交換機的流向數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)進行鏡像引流,解析得到應(yīng)用層數(shù)據(jù),應(yīng)用層數(shù)據(jù)包括頭部與數(shù)據(jù)體。
上述的過濾得到待解析數(shù)據(jù)包,包括:若應(yīng)用層數(shù)據(jù)總長度小于應(yīng)用層頭部長度,排除該數(shù)據(jù)包、不進行解析;若應(yīng)用層數(shù)據(jù)總長度小于頭部長度與數(shù)據(jù)體長度之和,該數(shù)據(jù)包不完整、需要進行組包。
對應(yīng)用層數(shù)據(jù)頭部解析:應(yīng)用層頭部長度為64字節(jié),第1-4個字節(jié)的值為頭部類型,第5-6個字節(jié)的值為頭部包類型,第7至8個字節(jié)的值為數(shù)據(jù)體長度,以下是對不同頭部包類型的數(shù)據(jù)包解析過程。
若頭部包類型的值為0x1,表示登錄包:
應(yīng)用層數(shù)據(jù)偏移頭部長度64字節(jié)后的4個字節(jié)為數(shù)據(jù)庫登錄名的長度,若長度為A1,則接下來A1個字節(jié)為數(shù)據(jù)庫登錄名的實際值;
繼續(xù)偏移(4+A1)字節(jié)后的4個字節(jié)為數(shù)據(jù)庫登錄密碼的長度,若長度為A2,則接下來A2個字節(jié)為數(shù)據(jù)庫登錄密碼的實際值;
繼續(xù)偏移(4+A2)字節(jié)后的4個字節(jié)為客戶端程序名的長度,若長度為A3,則接下來A3個字節(jié)為客戶端程序名的實際值;
繼續(xù)偏移(4+A3)字節(jié)后的4個字節(jié)為客戶端操作系統(tǒng)的長度,若長度為A4,則接下來A4個字節(jié)為客戶端操作系統(tǒng)的實際值;
繼續(xù)偏移(4+A4)字節(jié)后的4個字節(jié)為源主機名的長度,若長度為A5,則接下來A5個字節(jié)為源主機名的實際值。
若頭部包類型的值為0x05,表示SQL請求包:若數(shù)據(jù)體長度為B,則應(yīng)用層數(shù)據(jù)偏移頭部長度64字節(jié)后的B個字節(jié)為SQL語句的實際值。
若頭部包類型的值為0xa3,表示登錄確認包:先偏移應(yīng)用層數(shù)據(jù)頭部長度64字節(jié)、再偏移16字節(jié)后的4個字節(jié)為數(shù)據(jù)庫實例名的長度,若長度為C,則接下來C個字節(jié)為數(shù)據(jù)庫實例名的實際值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西安交大捷普網(wǎng)絡(luò)科技有限公司,未經(jīng)西安交大捷普網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910839724.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





