System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,尤其涉及一種數據查詢語句更新方法、裝置、電子設備及存儲介質。
技術介紹
1、當前,數據庫安全產品所必須具備的一個關鍵的能力是對客戶端發送的數據庫請求進行精確解析,匹配安全策略,并進行相應的動作,在一些應用場景下需要修改結構化查詢語言(structured?query?language,sql)的查詢語句。
2、相關技術中,通常是采用傳統的修改sql語句方法,例如,在查詢準備階段替換占位符,或者利用正則表達式匹配sql語句,并替換指定位置的內容,或者針對解析后生成的抽象語法樹(abstract?syntax?tree,ast)進行修改,修改后基于新的ast語法樹重新生成sql語句。
3、這種方式下,傳統sql語句修改方法局限性較大,無法完成復雜場景下的sql修改功能,而采用針對解析后生成的ast語法樹進行sql語句修改,每次修改都需要遍歷ast語法樹修改匹配的結點,根據新生成的語法樹重新生成sql語句,導致修改效率較低且耗費的數據空間較大,sql語句的修改準確性較低。
技術實現思路
1、本申請旨在至少在一定程度上解決相關技術中的技術問題之一。
2、為此,本申請的第一個目的在于提出一種數據查詢語句更新方法,以實現無需頻繁遍歷語法樹的數據查詢語句修改,基于位置信息將數據查詢語句各部分切片,對需要修改的部分進行修改,保存位置信息以準確定位各部分內容,保存位置信息占用的內存開銷小,實現準確高效的數據查詢語句修改。
3、本申請的
4、本申請的第三個目的在于提出一種電子設備。
5、本申請的第四個目的在于提出一種計算機可讀存儲介質。
6、本申請的第五個目的在于提出一種計算機程序產品。
7、為達上述目的,本申請第一方面實施例提出了一種數據查詢語句更新方法,包括:獲取初始數據查詢語句和查詢語句修改策略信息;對初始數據查詢語句進行解析處理,得到初始數據查詢語句中的多個數據查詢字段;根據查詢語句修改策略信息從多個數據查詢字段中確定出待更新查詢字段和有效查詢字段,其中,待更新查詢字段具有對應的第一字段位置信息,有效查詢字段具有對應的第二字段位置信息;根據查詢語句修改策略信息、第一字段位置信息、第二字段位置信息、待更新查詢字段以及有效查詢字段,對初始數據查詢語句進行更新處理,得到目標數據查詢語句。
8、為達上述目的,本申請第二方面實施例提出了一種數據查詢語句更新裝置,包括:獲取模塊,用于獲取初始數據查詢語句和查詢語句修改策略信息;第一處理模塊,用于對初始數據查詢語句進行解析處理,得到初始數據查詢語句中的多個數據查詢字段;第一確定模塊,用于根據查詢語句修改策略信息從多個數據查詢字段中確定出待更新查詢字段和有效查詢字段,其中,待更新查詢字段具有對應的第一字段位置信息,有效查詢字段具有對應的第二字段位置信息;更新模塊,用于根據查詢語句修改策略信息、第一字段位置信息、第二字段位置信息、待更新查詢字段以及有效查詢字段,對初始數據查詢語句進行更新處理,得到目標數據查詢語句。
9、為達上述目的,本申請第三方面實施例提出了一種電子設備,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,處理器執行程序時,實現如本申請第一方面實施例提出的數據查詢語句更新方法。
10、為達上述目的,本申請第四方面實施例提出了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現如本申請第一方面實施例提出的數據查詢語句更新方法。
11、為達上述目的,本申請第五方面實施例提出了一種計算機程序產品,當計算機程序產品中的指令由處理器執行時,執行如本申請第一方面實施例提出的數據查詢語句更新方法。
12、本申請提供的數據查詢語句更新方法、裝置、電子設備及存儲介質,通過獲取初始數據查詢語句和查詢語句修改策略信息,對初始數據查詢語句進行解析處理,得到初始數據查詢語句中的多個數據查詢字段,根據查詢語句修改策略信息從多個數據查詢字段中確定出待更新查詢字段和有效查詢字段,其中,待更新查詢字段具有對應的第一字段位置信息,有效查詢字段具有對應的第二字段位置信息,根據查詢語句修改策略信息、第一字段位置信息、第二字段位置信息、待更新查詢字段以及有效查詢字段,對初始數據查詢語句進行更新處理,得到目標數據查詢語句,解決了現有技術中針對語法樹進行數據查詢語句修改,每次修改都需要遍歷語法樹修改匹配的結點,導致修改效率較低、修改準確性較低的技術問題。
13、本申請附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
本文檔來自技高網...【技術保護點】
1.一種數據查詢語句更新方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,所述根據所述查詢語句修改策略信息、所述第一字段位置信息、所述第二字段位置信息、所述待更新查詢字段以及所述有效查詢字段,對所述初始數據查詢語句進行更新處理,得到目標數據查詢語句,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述目標更新查詢字段、所述第一字段位置信息、所述第二字段位置信息、所述待更新查詢字段以及所述有效查詢字段,對所述初始數據查詢語句進行更新處理,得到目標數據查詢語句,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據所述第一字段位置信息、所述更新類型信息以及所述目標更新查詢字段,對所述初始數據查詢語句中的待更新查詢字段進行更新處理,得到更新后查詢字段,包括:
5.根據權利要求1所述的方法,其特征在于,所述根據所述查詢語句修改策略信息從所述多個數據查詢字段中確定出待更新查詢字段和有效查詢字段,包括:
6.根據權利要求1所述的方法,其特征在于,所述方法還包括:
7.一種數據查詢語
8.一種電子設備,其特征在于,包括:處理器,以及與所述處理器通信連接的存儲器;
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質中存儲有計算機執行指令,所述計算機執行指令被處理器執行時用于實現如權利要求1-6中任一項所述的方法。
10.一種計算機程序產品,其特征在于,包括計算機程序,該計算機程序被處理器執行時實現權利要求1-6中任一項所述的方法。
...【技術特征摘要】
1.一種數據查詢語句更新方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的方法,其特征在于,所述根據所述查詢語句修改策略信息、所述第一字段位置信息、所述第二字段位置信息、所述待更新查詢字段以及所述有效查詢字段,對所述初始數據查詢語句進行更新處理,得到目標數據查詢語句,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述目標更新查詢字段、所述第一字段位置信息、所述第二字段位置信息、所述待更新查詢字段以及所述有效查詢字段,對所述初始數據查詢語句進行更新處理,得到目標數據查詢語句,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據所述第一字段位置信息、所述更新類型信息以及所述目標更新查詢字段,對所述初始數據查詢語句中的待更新查詢字段進行更新處理,得...
【專利技術屬性】
技術研發人員:白巖,馬曉東,梁志勇,
申請(專利權)人:北京原點數安科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。