本發(fā)明涉及數(shù)據(jù)庫審計技術(shù)領(lǐng)域,特別是涉及一種信息關(guān)聯(lián)及其數(shù)據(jù)庫審計方法、審計系統(tǒng)。
背景技術(shù):
三層架構(gòu)是一個分層式的軟件體系架構(gòu)設(shè)計,可以適用于各種不同類型的項(xiàng)目。由于三層結(jié)構(gòu)在使用上的優(yōu)勢(開發(fā)人員可以僅關(guān)注其中一層、容易使用新的實(shí)現(xiàn)替代原有實(shí)現(xiàn)、降低層間依賴、有利于標(biāo)準(zhǔn)化等),而被廣泛的應(yīng)用。
良好的三層架構(gòu)可以使得開發(fā)人員的分工更加明確。一旦定義好各層次之間的接口,負(fù)責(zé)不同邏輯設(shè)計的開發(fā)人員就可以分散關(guān)注。例如ui人員只需考慮用戶界面的體驗(yàn)與操作,領(lǐng)域的設(shè)計人員可以僅關(guān)注業(yè)務(wù)邏輯的設(shè)計,而數(shù)據(jù)庫設(shè)計人員也不必考慮繁瑣的用戶交互設(shè)計。
通常的,三層架構(gòu)將整個業(yè)務(wù)(軟件體系)劃分為表現(xiàn)層(ui)、業(yè)務(wù)邏輯層(bll)以及數(shù)據(jù)訪問層(dal)。其中,ui層主要是指與用戶交互的界面,用于接收用戶輸入的數(shù)據(jù)和顯示處理后用戶需要的數(shù)據(jù)。dal層是對非原始數(shù)據(jù)的操作層,例如數(shù)據(jù)庫,實(shí)現(xiàn)對數(shù)據(jù)庫內(nèi)數(shù)據(jù)的增、刪、改、查等操作,將存儲在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務(wù)層,同時將業(yè)務(wù)層處理的數(shù)據(jù)保存到數(shù)據(jù)庫。bll層是ui層和dal層之間的橋梁,用以實(shí)現(xiàn)業(yè)務(wù)邏輯。這樣的業(yè)務(wù)邏輯具體可以包含:驗(yàn)證、計算、業(yè)務(wù)規(guī)則等等。
由于三層架構(gòu)具有上述結(jié)構(gòu)清晰、耦合度低;易維護(hù),易擴(kuò)展以及利于開發(fā)任務(wù)同步進(jìn)行,容易適應(yīng)需求變化等優(yōu)點(diǎn)。在醫(yī)療等領(lǐng)域運(yùn)用越來越廣泛。
傳統(tǒng)的三層架構(gòu)審計方法,分別由ui層審計http協(xié)議,可以把登陸用戶名、主機(jī)名和操作系統(tǒng)用戶名等信息審計出來,dal層審計bll層對數(shù)據(jù)庫的訪問,會審計出具體操作的sql事件。
為了進(jìn)一步的關(guān)聯(lián)ui層和dal層的具體事件,還會采取“模糊匹配”方法來實(shí)現(xiàn)“關(guān)聯(lián)分析”。亦即,審計系統(tǒng)首先分別審計出ui層dal層,前者是http事件,后者是sql事件,然后需將這兩條事件關(guān)聯(lián)起來,進(jìn)行時間系列方面的“模糊匹配”,從而將訪問的資源帳號和相關(guān)的數(shù)據(jù)庫操作關(guān)聯(lián)起來。
在實(shí)現(xiàn)本申請過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)存在以下問題:在傳統(tǒng)的審計方法中,并未把ui層的審計結(jié)果和dal層的sql事件相關(guān)聯(lián),不利于保障數(shù)據(jù)庫的安全。
若采取模糊匹配的分析方法,在存在高并發(fā)操作的時,關(guān)聯(lián)的結(jié)果會出現(xiàn)災(zāi)難性的后果,失真率極高(如20%),造成業(yè)務(wù)用戶與sql語句錯誤關(guān)聯(lián)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種信息關(guān)聯(lián)及其數(shù)據(jù)庫審計方法、審計系統(tǒng),旨在解決現(xiàn)有技術(shù)中關(guān)聯(lián)方法在高并發(fā)時,信息關(guān)聯(lián)錯誤率高的問題。
本發(fā)明實(shí)施例一方面提供了一種信息關(guān)聯(lián)方法。其中,包括:
提取交互層操作的會話標(biāo)識符;
提取數(shù)據(jù)訪問層操作的會話標(biāo)識符,所述會話標(biāo)識符為會話的唯一標(biāo)識;
在業(yè)務(wù)邏輯層獲取所述交互層操作與數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息;
根據(jù)所述關(guān)聯(lián)信息,通過會話標(biāo)識符關(guān)聯(lián)所述交互層操作以及數(shù)據(jù)訪問層操作。
可選地,所述提取交互層操作的會話標(biāo)識符,具體包括:在交互層,通過http協(xié)議的cookie或者url提取所述交互層操作對應(yīng)的會話標(biāo)識符。
可選地,所述提取數(shù)據(jù)訪問層操作的會話標(biāo)識符,具體包括:在數(shù)據(jù)訪問層,通過數(shù)據(jù)庫的會話管理或者數(shù)據(jù)庫協(xié)議連接報文獲取數(shù)據(jù)訪問層的會話標(biāo)識符。
可選地,所述在業(yè)務(wù)邏輯層獲取所述交互層操作與數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息,具體包括:在所述業(yè)務(wù)邏輯層設(shè)置探針,獲取所述交互層操作與對應(yīng)的數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息。
本發(fā)明實(shí)施例另一方面提供了一種數(shù)據(jù)庫審計方法。該方法包括:審計所述交互層操作,獲得交互層審計記錄;審計所述數(shù)據(jù)訪問層操作,獲得數(shù)據(jù)訪問層審計記錄;使用如上所述的方法,關(guān)聯(lián)所述交互層審計記錄和對應(yīng)的數(shù)據(jù)訪問層審計記錄。
本發(fā)明實(shí)施例另一方面提供了一種信息關(guān)聯(lián)系統(tǒng)。該系統(tǒng)包括:會話標(biāo)識符提取模塊,用于:提取交互層操作的會話標(biāo)識符;以及提取數(shù)據(jù)訪問層操作的會話標(biāo)識符,所述會話標(biāo)識符為會話的唯一標(biāo)識;關(guān)聯(lián)信息獲取模塊,用于:在業(yè)務(wù)邏輯層獲取所述交互層操作與數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息;信息關(guān)聯(lián)模塊,用于:根據(jù)所述關(guān)聯(lián)信息,通過會話標(biāo)識符關(guān)聯(lián)所述交互層操作以及數(shù)據(jù)訪問層操作。
可選地,所述會話標(biāo)識符提取模塊,具體用于:在交互層,通過http協(xié)議的cookie或者url提取所述交互層操作對應(yīng)的會話標(biāo)識符。
可選地,所述會話標(biāo)識符提取模塊,具體用于:在數(shù)據(jù)訪問層,通過數(shù)據(jù)庫的會話管理或者數(shù)據(jù)庫協(xié)議連接報文獲取數(shù)據(jù)訪問層的會話標(biāo)識符。
可選地,所述關(guān)聯(lián)信息獲取模塊,具體用于:在所述業(yè)務(wù)邏輯層設(shè)置探針,獲取所述交互層操作與對應(yīng)的數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息。
本發(fā)明實(shí)施例另一方面提供了一種數(shù)據(jù)庫審計系統(tǒng)。其中,該系統(tǒng)包括:審計模塊,用于審計所述交互層操作,獲得交互層審計記錄;以及審計所述數(shù)據(jù)訪問層操作,獲得數(shù)據(jù)訪問層審計記錄;關(guān)聯(lián)模塊,用于使用如上所述的方法,關(guān)聯(lián)所述交互層審計記錄和對應(yīng)的數(shù)據(jù)訪問層審計記錄。
本發(fā)明實(shí)施例提供的信息關(guān)聯(lián)方法和數(shù)據(jù)庫審計系統(tǒng),利用唯一的會話標(biāo)識符來確定ui層的訪問資源賬號以及dal層相關(guān)的數(shù)據(jù)庫操作之間的對應(yīng)關(guān)系。由于會話標(biāo)識符的唯一性,可以確保對應(yīng)關(guān)系也是唯一的。因此,可以準(zhǔn)確的將ui層和dal層相關(guān)的操作進(jìn)行關(guān)聯(lián),保障了審計結(jié)果的安全與可靠性。
附圖說明
為了更清楚地說明本申請實(shí)施例的技術(shù)方案,下面將對本申請實(shí)施例中所需要使用的附圖作簡單地介紹。顯而易見地,下面所描述的附圖僅僅是本申請的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的信息關(guān)聯(lián)方法的方法流程圖;
圖2是本發(fā)明實(shí)施例提供的信息關(guān)聯(lián)系統(tǒng)的功能框圖;
圖3是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫審計的數(shù)據(jù)處理示意圖;
圖4是本發(fā)明實(shí)施例提供的電子設(shè)備的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本申請的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本申請進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本申請,并不用于限定本申請。
圖1為本發(fā)明實(shí)施例一方面提供了一種信息關(guān)聯(lián)方法。該信息關(guān)聯(lián)方法應(yīng)用于三層架構(gòu)的業(yè)務(wù)中,用以確定在不同層上的操作的對應(yīng)關(guān)系并據(jù)此將兩個操作建立關(guān)聯(lián)。
如圖1所示,該信息關(guān)聯(lián)方法包括如下步驟:
100:提取交互層操作的會話標(biāo)識符。會話(session)是指通信雙方從通信開始到結(jié)束期間的一個上下文(context),其是邏輯上的用戶(如數(shù)據(jù)庫服務(wù)器)與處理端(如數(shù)據(jù)庫)之間的通信交互。
數(shù)據(jù)庫服務(wù)器與數(shù)據(jù)庫之間建立連接,在物理信道上可以完成一個或者多個會話。每個會話均會被分配一個唯一的編號或者編碼,在本實(shí)施例中,以“會話標(biāo)識符”這樣的術(shù)語表示上述用以區(qū)別或者確認(rèn)會話的編號或者編碼。當(dāng)然,所述“會話標(biāo)識符”還可以是任何合適類型的id或者其它形式的數(shù)據(jù),可以用于區(qū)分不同會話即可。
在一些實(shí)施例中,上述會話標(biāo)識符可以在瀏覽器和web服務(wù)器之間,通過cookie進(jìn)行傳輸。在另一些情形中,若指定了無cookie會話,會話標(biāo)識符則通過url進(jìn)行傳輸。相對應(yīng)的,在本實(shí)施例中,即可以通過http協(xié)議的cookie或者url來提取某個ui層操作對應(yīng)的會話標(biāo)識符。
200:提取數(shù)據(jù)訪問層操作的會話標(biāo)識符,所述會話標(biāo)識符為會話的唯一標(biāo)識。分層架構(gòu)中的ui層和dal層的操作均有其對應(yīng)的會話標(biāo)識符。獲取到的會話標(biāo)識符可以作為參考信息以確定對應(yīng)關(guān)系。
可選地,dal層操作則可以通過數(shù)據(jù)庫的會話管理或者數(shù)據(jù)庫協(xié)議連接報文獲取操作對應(yīng)的會話標(biāo)識符。
300:在業(yè)務(wù)邏輯層獲取所述交互層操作與數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息。bll層(業(yè)務(wù)邏輯層)作為ui層和dal層的連接橋梁,包含了交互層操作和數(shù)據(jù)訪問層操作之間的一些相關(guān)信息。
所述關(guān)聯(lián)信息具體可以一些合適的,用以表示兩個不同層上操作的對應(yīng)關(guān)系,例如某個登錄用戶名對應(yīng)的,執(zhí)行的一個或者多個具體操作的sql事件之間的關(guān)聯(lián)信息。
在一些實(shí)施例中,可以通過在所述業(yè)務(wù)邏輯層嵌入探針的方式來實(shí)現(xiàn)對于關(guān)聯(lián)信息的獲取。該探針能夠抓取一些交互層操作與對應(yīng)的數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息以供使用。
400:根據(jù)所述關(guān)聯(lián)信息,通過會話標(biāo)識符關(guān)聯(lián)所述交互層操作以及數(shù)據(jù)訪問層操作。
根據(jù)所述關(guān)聯(lián)信息,可以把對應(yīng)的會話標(biāo)識符關(guān)聯(lián),從而唯一的確定交互層操作以及數(shù)據(jù)訪問層操作的對應(yīng)關(guān)系,實(shí)現(xiàn)信息關(guān)聯(lián)。由于會話標(biāo)識符具有可靠的唯一性。因此,這樣的對應(yīng)關(guān)系也是唯一并且可靠的,即使在高并發(fā)的情況下,仍然能夠保持關(guān)聯(lián)關(guān)系的準(zhǔn)確率,避免ui層操作和dal層操作之間出現(xiàn)關(guān)聯(lián)錯誤。
本發(fā)明實(shí)施例還提供了一種應(yīng)用如上實(shí)施例所述的信息關(guān)聯(lián)方法的數(shù)據(jù)庫審計方法。在數(shù)據(jù)庫審計過程中,對ui層操作和dal層操作的審計結(jié)果進(jìn)行關(guān)聯(lián)。在本發(fā)明實(shí)施例中,數(shù)據(jù)庫審計過程中,首先分別審計所述交互層操作以及所述數(shù)據(jù)訪問層操作,獲得交互層審計記錄以及數(shù)據(jù)訪問層審計記錄。
然后,使用如上實(shí)施例揭露的方法,關(guān)聯(lián)所述交互層審計記錄和對應(yīng)的數(shù)據(jù)訪問層審計記錄。
通過本發(fā)明實(shí)施例提供的數(shù)據(jù)庫審計方法,可以將ui層訪問的資源賬號和dal層相關(guān)的數(shù)據(jù)庫操作準(zhǔn)確無誤的關(guān)聯(lián)起來。業(yè)務(wù)用戶和sql語句(事件)之間的關(guān)聯(lián)更為準(zhǔn)確,錯誤率與模糊匹配的方法相比,得到了極大的降低,能夠提供更好的審計信息,保障數(shù)據(jù)庫操作的安全。
本發(fā)明實(shí)施例還提供了一種信息關(guān)聯(lián)系統(tǒng)。如圖2所示,該系統(tǒng)包括:會話標(biāo)識符提取模塊100、關(guān)聯(lián)信息獲取模塊200以及信息關(guān)聯(lián)模塊300。
其中,所述會話標(biāo)識符提取模塊100用于提取交互層操作的會話標(biāo)識符以及提取數(shù)據(jù)訪問層操作的會話標(biāo)識符,所述會話標(biāo)識符為會話的唯一標(biāo)識。關(guān)聯(lián)信息獲取模塊200用于在業(yè)務(wù)邏輯層獲取所述交互層操作與數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息。信息關(guān)聯(lián)模塊300用于根據(jù)所述關(guān)聯(lián)信息,通過會話標(biāo)識符關(guān)聯(lián)所述交互層操作以及數(shù)據(jù)訪問層操作。
在實(shí)際操作過程中,首先通過會話識別符提取模塊100提取操作對應(yīng)的會話標(biāo)識符。并且,通過關(guān)聯(lián)信息獲取模塊200獲取到所述關(guān)聯(lián)關(guān)系。最后,信息關(guān)聯(lián)模塊300基于所述關(guān)聯(lián)關(guān)系,關(guān)聯(lián)相關(guān)的會話標(biāo)識符從而確定所述交互層操作以及數(shù)據(jù)訪問層操作的對應(yīng)關(guān)系。
在一些實(shí)施例中,所述會話標(biāo)識符提取模塊100具體用于:在交互層,通過http協(xié)議的cookie或者url提取所述交互層操作對應(yīng)的會話標(biāo)識符?;蛘撸跀?shù)據(jù)訪問層,通過數(shù)據(jù)庫的會話管理或者數(shù)據(jù)庫協(xié)議連接報文獲取數(shù)據(jù)訪問層的會話標(biāo)識符。
在另一些實(shí)施例中,所述關(guān)聯(lián)信息獲取模塊200具體用于:在所述業(yè)務(wù)邏輯層設(shè)置探針,獲取所述交互層操作與對應(yīng)的數(shù)據(jù)訪問層操作的關(guān)聯(lián)信息。
需要說明的是,由于信息關(guān)聯(lián)系統(tǒng)與信息關(guān)聯(lián)方法基于相同的申請構(gòu)思,因此,方法實(shí)施例中的相應(yīng)內(nèi)容同樣適用于系統(tǒng)實(shí)施例,此處不再詳述。
與本發(fā)明實(shí)施例提供的數(shù)據(jù)庫審計方法相對應(yīng)的,本發(fā)明實(shí)施例還提供了數(shù)據(jù)庫審計系統(tǒng)。該系統(tǒng)包括:審計模塊和關(guān)聯(lián)模塊。所述審計模塊400用于審計所述交互層操作,獲得交互層審計記錄以及審計所述數(shù)據(jù)訪問層操作,獲得數(shù)據(jù)訪問層審計記錄。所述關(guān)聯(lián)模塊可以執(zhí)行如上述方法實(shí)施例提供的信息關(guān)聯(lián)方法,關(guān)聯(lián)所述交互層審計記錄和對應(yīng)的數(shù)據(jù)訪問層審計記錄。
圖3為本發(fā)明實(shí)施例提供的,在三層架構(gòu)的軟件體系中,應(yīng)用所述數(shù)據(jù)審計系統(tǒng)的示意圖。如圖3所示,軟件體系包括了ui層、bll層以及dal層這樣典型的三層架構(gòu)。
在ui層和dal層上,所述審計模塊輸出對應(yīng)的操作審計記錄以及用于標(biāo)識這一操作的,唯一的會話標(biāo)識符(ui層操作會話標(biāo)識符11和dal層操作會話標(biāo)識符12)。
在bll層中,嵌入有探針這樣的功能模塊,獲取ui層操作和dal層操作之間的關(guān)聯(lián)信息10。
所述關(guān)聯(lián)模塊通過所述關(guān)聯(lián)信息10,將對應(yīng)的ui層操作會話標(biāo)識符11和dal層操作會話標(biāo)識符12關(guān)聯(lián),并最終輸出ui的賬號信息等ui層操作與dal層的sql事件之間的關(guān)聯(lián)關(guān)系20(對應(yīng)關(guān)系)。
通過這樣的方式,可以避免傳統(tǒng)審計方法中很難把用戶(ui層賬號)和對數(shù)據(jù)庫的具體操作關(guān)聯(lián)或者關(guān)聯(lián)出錯的問題,在任何情況下都能精確審計,定位到用戶,保證對于數(shù)據(jù)庫的全面審計,確保數(shù)據(jù)庫的安全。
圖4是本發(fā)明實(shí)施例提供的一種電子設(shè)備的硬件結(jié)構(gòu)示意圖。如圖4所示,該設(shè)備包括:一個或多個處理器410以及存儲器420,圖4中以一個處理器410為例。
處理器410和存儲器420可以通過總線或者其他方式連接,圖4中以通過總線連接為例。
存儲器420作為一種非易失性計算機(jī)可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的信息關(guān)聯(lián)方法對應(yīng)的程序指令/模塊(例如,附圖2所示的會話標(biāo)識符提取模塊100、關(guān)聯(lián)信息獲取模塊200以及信息關(guān)聯(lián)模塊300)。
處理器410通過運(yùn)行存儲在存儲器420中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例信息關(guān)聯(lián)方法。
存儲器420可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)信息關(guān)聯(lián)系統(tǒng)的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器420可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實(shí)施例中,存儲器420可選包括相對于處理器410遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至信息關(guān)聯(lián)系統(tǒng)。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
所述一個或者多個模塊存儲在所述存儲器420中,當(dāng)被所述一個或者多個處理器410執(zhí)行時,執(zhí)行上述任意方法實(shí)施例中的信息關(guān)聯(lián)方法。
上述產(chǎn)品可執(zhí)行本申請實(shí)施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本申請實(shí)施例所提供的方法。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請的范圍。所述的計算機(jī)軟件可存儲于計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體或隨機(jī)存儲記憶體等。
以上所述僅為本申請的實(shí)施方式,并非因此限制本申請的專利范圍,凡是利用本申請說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本申請的專利保護(hù)范圍內(nèi)。