數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法及裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)與計(jì)算機(jī)技術(shù)的飛速發(fā)展,使用數(shù)據(jù)庫作為信息存儲的應(yīng)用越來越多,而數(shù)據(jù)庫作為應(yīng)用信息存儲的核心,對于其安全性的要求也越來越高,由于越來越多的應(yīng)用接入網(wǎng)絡(luò),在網(wǎng)絡(luò)環(huán)境下,數(shù)據(jù)庫面臨的攻擊也越來越多,同時(shí),數(shù)據(jù)作為應(yīng)用信息存儲的核心,保存著用戶及應(yīng)用大量的信息,對于其中某些信息是禁止他人訪問的,但是,現(xiàn)有數(shù)據(jù)庫不具有對數(shù)據(jù)訪問追溯源頭的功能。
[0003]現(xiàn)有技術(shù)中,數(shù)據(jù)庫未對數(shù)據(jù)訪問的源頭進(jìn)行記錄,所述源頭包括:源IP地址、源端口號,因此數(shù)據(jù)庫對數(shù)據(jù)訪問進(jìn)行追溯源頭時(shí),無法獲得正確的數(shù)據(jù)庫訪問源頭。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的主要目的在于提供一種數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法,旨在解決現(xiàn)有技術(shù)中數(shù)據(jù)庫不具有對數(shù)據(jù)訪問可以追溯源頭的功能,使得對數(shù)據(jù)庫訪問追溯源頭時(shí),無法獲得正確的數(shù)據(jù)庫訪問源頭的技術(shù)問題。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法,所述數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法包括以下步驟:
[0006]根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息將所述數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中;
[0007]預(yù)設(shè)時(shí)間間隔后,獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包;
[0008]對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時(shí)根據(jù)所述請求類型執(zhí)行對應(yīng)的操作。
[0009]優(yōu)選地,所述根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息將所述數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中的步驟包括:
[0010]獲取數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息,所述標(biāo)志信息包括:源IP地址、源端口號、目標(biāo)IP地址和目標(biāo)端口號;
[0011]根據(jù)所述標(biāo)志信息,將標(biāo)志信息相同的數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)中對應(yīng)的HASH池中。
[0012]優(yōu)選地,所述預(yù)設(shè)時(shí)間間隔后,獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包的步驟包括:
[0013]預(yù)設(shè)時(shí)間間隔后,查看所述HASH池中是否保存有數(shù)據(jù)庫訪問數(shù)據(jù)包,若是,則獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包,否則結(jié)束流程。
[0014]優(yōu)選地,所述對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時(shí)根據(jù)所述請求類型執(zhí)行對應(yīng)的操作的步驟包括:
[0015]對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型;
[0016]當(dāng)所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為登錄請求時(shí),根據(jù)所述數(shù)據(jù)庫訪問數(shù)據(jù)包獲取登錄所需要的信息,并根據(jù)所述信息建立連接隊(duì)列。
[0017]優(yōu)選地,所述對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時(shí)根據(jù)所述請求類型執(zhí)行對應(yīng)的操作的步驟還包括:
[0018]對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型;
[0019]當(dāng)所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為查詢請求時(shí),根據(jù)SQL語句查找所屬連接隊(duì)列,同時(shí)將所述連接隊(duì)列與用戶名和數(shù)據(jù)庫名做關(guān)聯(lián)。
[0020]此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置,所述數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置包括:
[0021]數(shù)據(jù)包分發(fā)模塊,用于根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息將所述數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中;
[0022]數(shù)據(jù)包獲取模塊,用于預(yù)設(shè)時(shí)間間隔后,獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包;
[0023]數(shù)據(jù)包解析模塊,用于對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時(shí)根據(jù)所述請求類型執(zhí)行對應(yīng)的操作。
[0024]優(yōu)選地,所述數(shù)據(jù)包分發(fā)模塊包括:
[0025]標(biāo)志信息獲取單元,用于獲取數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息,所述標(biāo)志信息包括:源IP地址、源端口號、目標(biāo)IP地址和目標(biāo)端口號;
[0026]HASH池分配單元,用于根據(jù)所述標(biāo)志信息,將標(biāo)志信息相同的數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)中對應(yīng)的HASH池中。
[0027]優(yōu)選地,所述數(shù)據(jù)包獲取模塊包括:
[0028]數(shù)據(jù)包查找獲取單元,用于預(yù)設(shè)時(shí)間間隔后,查看所述HASH池中是否保存有數(shù)據(jù)庫訪問數(shù)據(jù)包,若是,則獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包,否則結(jié)束流程。
[0029]優(yōu)選地,所述數(shù)據(jù)包解析模塊包括:
[0030]解析單元,用于對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型;
[0031]登錄請求響應(yīng)單元,用于當(dāng)所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為登錄請求時(shí),根據(jù)所述數(shù)據(jù)庫訪問數(shù)據(jù)包獲取登錄所需要的信息,并根據(jù)所述信息建立連接隊(duì)列。
[0032]優(yōu)選地,所述數(shù)據(jù)包解析模塊還包括:
[0033]解析單元,用于對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型;
[0034]查詢請求響應(yīng)單元,用于當(dāng)所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型為查詢請求時(shí),根據(jù)SQL語句查找所屬連接隊(duì)列,同時(shí)將所述連接隊(duì)列與用戶名和數(shù)據(jù)庫名做關(guān)聯(lián)。
[0035]本發(fā)明實(shí)施例提出的一種數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法及裝置,通過根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息將所述數(shù)據(jù)包分發(fā)給解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中,并在預(yù)設(shè)時(shí)間間隔后獲取所述數(shù)據(jù)包,同時(shí)對所述數(shù)據(jù)包進(jìn)行解析獲取SQL語句和請求類型,根據(jù)請求類型執(zhí)行相關(guān)操作并將SQL語句發(fā)送給日志服務(wù)器,實(shí)現(xiàn)了對同一標(biāo)志信息的數(shù)據(jù)包統(tǒng)一存放在一個(gè)的HASH池中進(jìn)行解析處理,對同一連接的SQL語句能夠進(jìn)行標(biāo)示,使得對數(shù)據(jù)庫訪問進(jìn)行追溯時(shí),可以識別同一標(biāo)志信息的數(shù)據(jù)庫訪問請求。
【附圖說明】
[0036]圖1為本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法的第一實(shí)施例的流程示意圖;
[0037]圖2為本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法的第二實(shí)施例的流程示意圖;
[0038]圖3為本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法的第三實(shí)施例的流程示意圖;
[0039]圖4為本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置的第一實(shí)施例的功能模塊示意圖;
[0040]圖5為本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置的第二實(shí)施例的功能模塊示意圖;
[0041 ]圖6為本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的裝置的第三實(shí)施例的功能模塊示意圖;
[0042]圖7為本發(fā)明實(shí)施例一種具體實(shí)施方案的流程示意圖。
[0043]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
【具體實(shí)施方式】
[0044]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0045]本發(fā)明實(shí)施例的主要解決方案是:根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息將所述數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中;預(yù)設(shè)時(shí)間間隔后,獲取所述HASH池中保存的數(shù)據(jù)庫訪問數(shù)據(jù)包;對所述數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行解析,獲取SQL語句和所述數(shù)據(jù)庫訪問數(shù)據(jù)包的請求類型,同時(shí)根據(jù)所述請求類型執(zhí)行對應(yīng)的操作。
[0046]由于現(xiàn)有技術(shù)中,數(shù)據(jù)庫不具有對數(shù)據(jù)訪問追溯源頭的功能,使得對于數(shù)據(jù)庫非法訪問進(jìn)行追溯源頭時(shí),很難找到正確的數(shù)據(jù)庫訪問源頭。
[0047]本發(fā)明提供一種解決方案,在數(shù)據(jù)庫訪問數(shù)據(jù)包解析時(shí),將具有同一標(biāo)志信息的數(shù)據(jù)包放入解析線程緩沖區(qū)中的同一HASH池,使得對于數(shù)據(jù)庫訪問進(jìn)行追溯時(shí),獲取對同源的數(shù)據(jù)庫訪問數(shù)據(jù)包進(jìn)行追溯。
[0048]參照圖1,本發(fā)明數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法的第一實(shí)施例,所述數(shù)據(jù)庫訪問數(shù)據(jù)包解析的方法包括:
[0049]步驟S100,根據(jù)數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息將所述數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中。
[0050]將接收到的數(shù)據(jù)庫訪問數(shù)據(jù)包放入解析線程對應(yīng)的緩沖區(qū)中,并根據(jù)所述數(shù)據(jù)包的標(biāo)志信息,將數(shù)據(jù)包放入解析線程緩沖區(qū)后將所述數(shù)據(jù)包分發(fā)到HASH池中,對于具有相同標(biāo)志信息的數(shù)據(jù)庫訪問數(shù)據(jù)包放入同一 HASH池中,其中,數(shù)據(jù)庫訪問數(shù)據(jù)包的標(biāo)志信息包括:數(shù)據(jù)包的源IP地址、源端口號、目標(biāo)IP地址和目標(biāo)端口號。
[0051]可以預(yù)見的,為提高解析效率,所述解析線程可以為多個(gè),為每個(gè)解析線程分配不同的緩沖區(qū),使得本發(fā)明所述實(shí)施例支持多任務(wù)解析。
[0