亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法及裝置的制造方法_2

文檔序號:9929643閱讀:來源:國知局
052]步驟S200,預設時間間隔后,獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包。
[0053]由于數(shù)據(jù)庫訪問客戶端發(fā)起數(shù)據(jù)庫訪問請求時,對于同一數(shù)據(jù)庫訪問請求可能拆分為多個數(shù)據(jù)庫訪問數(shù)據(jù)包進行發(fā)送,因此,需要在預設時間間隔后,對所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包進行獲取,可以預見的,為減少HASH池讀操作,在獲取數(shù)據(jù)庫訪問數(shù)據(jù)包之前對所述HASH池中是否保存有數(shù)據(jù)庫訪問數(shù)據(jù)包進行查看,若所述HASH池中保存有數(shù)據(jù)庫訪問數(shù)據(jù)包則獲取所述數(shù)據(jù)包,否則,結束流程。
[0054]步驟S300,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時根據(jù)所述請求類型執(zhí)行對應的操作。
[0055]根據(jù)網絡通信協(xié)議和對應的數(shù)據(jù)庫協(xié)議對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取所述數(shù)據(jù)庫訪問數(shù)據(jù)包中的SQL語句,以及根據(jù)對應的數(shù)據(jù)庫協(xié)議獲取數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時根據(jù)所述請求類型執(zhí)行對應的操作,若所述請求類型為登錄請求,則執(zhí)行登錄操作,若所述請求類型為查詢請求,則執(zhí)行查詢操作。
[0056]可以預見的,為保證后續(xù)對SQL語句進行審計,因此將所述SQL語句發(fā)送至日志服務器,由日志服務器進行記錄。
[0057]具體實施時,以MySQL為例,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析獲取數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型的步驟包括:
[0058]1、讀取所述數(shù)據(jù)庫訪問數(shù)據(jù)包第三個字節(jié)的值;
[0059]2、若所述第三個字節(jié)的值為I,則判斷所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為登錄請求;
[0060]3、若所述第三個字節(jié)的值為0,則判斷所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為查詢請求。
[0061]進一步的,本實施具體實施時,如圖7所示包括以下步驟:
[0062]1、根據(jù)SQL數(shù)據(jù)包的內容找到解析線程;
[0063]2、將數(shù)據(jù)包放入解析線程的緩沖區(qū);
[0064]3、將數(shù)據(jù)包分發(fā)到HASH池;
[0065]4、如果HASH池有數(shù)據(jù)則開始解析;
[ΟΟ??] 5、讀取第三個字節(jié)判斷是登錄請求還是查詢請求;
[0067]6、如果為I則為登錄請求則找出用戶名、密碼、數(shù)據(jù)庫名、加密協(xié)議,建立新的連接隊列,如果為O則為查詢請求則解析出SQL語句,查找SQL所屬連接隊列,關聯(lián)上用戶和數(shù)據(jù)庫名;
[0068]7、將SQL語句發(fā)送到日志服務器。
[0069]在本實施例中,根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標志信息將具有同一標志信息的數(shù)據(jù)庫訪問數(shù)據(jù)包放在同一HASH池中,并在預設時間間隔后獲取HASH池中的數(shù)據(jù)包并進行解析,使得在數(shù)據(jù)庫訪問數(shù)據(jù)包解析過程中,對具有同一標志信息的數(shù)據(jù)庫訪問數(shù)據(jù)包的解析統(tǒng)一解析處理,同時對同一連接的SQL語句能夠進行標示,使對數(shù)據(jù)庫訪問進行追溯時,可以對同一連接中的數(shù)據(jù)庫訪問進行追溯。
[0070]進一步的,參照圖2,本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法的第二實施例,基于上述圖1所示的實施例,所述步驟S300,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時根據(jù)所述請求類型執(zhí)行對應的操作包括:
[0071]步驟S310,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型。
[0072]根據(jù)數(shù)據(jù)庫網絡傳輸協(xié)議對數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,通過獲取所述數(shù)據(jù)包中保存請求類型的字段的值,獲取所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,通過根據(jù)所述協(xié)議獲取SQL語句。
[0073]步驟S311,當所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為登錄請求時,根據(jù)所述數(shù)據(jù)庫訪問數(shù)據(jù)包獲取登錄所需要的信息,并根據(jù)所述信息建立連接隊列。
[0074]當所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為登錄請求時,獲取所述數(shù)據(jù)庫訪問數(shù)據(jù)包中登錄所需要的信息,由于所述請求類型為登錄請求,因此根據(jù)所述信息建立連接隊列,所述信息包括:用戶名、密碼、數(shù)據(jù)庫名和加密協(xié)議。
[0075]在本實施例中,基于上一實施例所述的優(yōu)點,當所述數(shù)據(jù)庫訪問請求類型為登錄請求時,根據(jù)登錄所需要的信息建立連接隊列,使得同一用戶的數(shù)據(jù)訪問操作在同一隊列中進行,在對數(shù)據(jù)庫訪問進行追溯時,可通過訪問操作所在的隊列獲得對應的用戶信息。
[0076]進一步的,參照圖3,本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法的第三實施例,基于上述圖1所示的實施例,所述步驟S300,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時根據(jù)所述請求類型執(zhí)行對應的操作還包括:
[0077]步驟S320,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型。
[0078]根據(jù)數(shù)據(jù)庫網絡傳輸協(xié)議對數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,通過獲取所述數(shù)據(jù)包中保存請求類型的字段的值,獲取所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,通過根據(jù)所述協(xié)議獲取SQL語句。
[0079]步驟S321,當所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為查詢請求時,根據(jù)SQL語句查找所屬連接隊列,同時將所述連接隊列與用戶名和數(shù)據(jù)庫名做關聯(lián)。
[0080]當所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為查詢請求時,根據(jù)所述數(shù)據(jù)包信息查找所述SQL語句所屬的連接隊列,將所述連接隊列與用戶和數(shù)據(jù)庫名進行關聯(lián),使所述查詢請求在所述SQL語句所屬的連接隊列中進行。
[0081]在本實施例中,基于上一實施例所述的優(yōu)點,當所述數(shù)據(jù)庫訪問請求類型為查詢請求時,根據(jù)所述數(shù)據(jù)包信息查找所述SQL語句所屬的連接隊列,使所述查詢請求在所述SQL語句所屬的連接隊列中進行,使得同一用戶的數(shù)據(jù)訪問操作在同一隊列中進行,且進行數(shù)據(jù)庫查詢時,若存有對應的連接隊列,則不必新開連接隊列進行操作。
[0082]參照圖4,本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置的第一實施例,所述數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置包括:
[0083]數(shù)據(jù)包分發(fā)模塊100,用于根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標志信息將所述數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中。
[0084]將接收到的數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程對應的緩沖區(qū)中,并根據(jù)所述數(shù)據(jù)包的標志信息,將數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中,對于具有相同標志信息的數(shù)據(jù)庫訪問數(shù)據(jù)包放入同一 HASH池中,其中,數(shù)據(jù)庫訪問數(shù)據(jù)包的標志信息包括:數(shù)據(jù)包的源IP地址、源端口號、目標IP地址和目標端口號。
[0085]可以預見的,為提高解析效率,所述解析線程可以為多個,為每個解析線程分配不同的緩沖區(qū),使得本發(fā)明所述實施例支持多任務解析。
[0086]數(shù)據(jù)包獲取模塊200,用于預設時間間隔后,獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包。
[0087]由于數(shù)據(jù)庫訪問客戶端發(fā)起數(shù)據(jù)庫訪問請求時,對于同一數(shù)據(jù)庫訪問請求可能拆分為多個數(shù)據(jù)庫訪問數(shù)據(jù)包進行發(fā)送,因此,需要在預設時間間隔后,對所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包進行獲取,可以預見的,為減少HASH池讀操作,在獲取數(shù)據(jù)庫訪問數(shù)據(jù)包之前對所述HASH池中是否保存有數(shù)據(jù)庫訪問數(shù)據(jù)包進行查看,若所述HASH池中保存有數(shù)據(jù)庫訪問數(shù)據(jù)包則獲取所述數(shù)據(jù)包,否則,結束流程。
[0088]數(shù)據(jù)包解析模塊300,用于對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時根據(jù)所述請求類型執(zhí)行對應的操作。
[0089]根據(jù)網絡通信協(xié)議和對應的數(shù)據(jù)庫協(xié)議對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析,獲取所述數(shù)據(jù)庫訪問數(shù)據(jù)包中的SQL語句,以及根據(jù)對應的數(shù)據(jù)庫協(xié)議獲取數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時根據(jù)所述請求類型執(zhí)行對應的操作,若所述請求類型為登錄請求,則執(zhí)行登錄操作,若所述請求類型為查詢請求,則執(zhí)行查詢操作。
[0090]可以預見的,為保證后續(xù)對SQL語句進行審計,因此將所述SQL語句發(fā)送至日志服務器,由日志服務器進行記錄。
[0091 ]具體實施時,以MySQL為例,對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進行解析獲取數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型的步驟包括:
[0092]1、讀取所述數(shù)據(jù)庫訪問數(shù)據(jù)包第三個字節(jié)的值;
[0093]2、若所述第三個字節(jié)的值為I,則判斷所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為登錄請求;
[0094]3、若所述第三個字節(jié)的值為0,則判斷所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為查詢請求。
[0095]進一步的,本實施具體實施時,如圖7所示包括以下步驟:
[0096]1、根據(jù)SQL數(shù)據(jù)包的內容找到解析線程;
[0097]2、將數(shù)據(jù)包放入解析線程的緩沖區(qū);
[0098]3、將數(shù)據(jù)包分發(fā)到HASH池;
[00"] 4、如果HASH池有數(shù)據(jù)則開始解析;
當前第2頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1