亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于在多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的系統(tǒng)和方法

文檔序號(hào):6570379閱讀:162來(lái)源:國(guó)知局
專利名稱:用于在多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及在數(shù)據(jù)庫(kù)網(wǎng)絡(luò)系統(tǒng)中保護(hù)數(shù)椐,更具體,涉及在多 租戶數(shù)據(jù)庫(kù)網(wǎng)絡(luò)系統(tǒng)中保護(hù)數(shù)據(jù)。
背景技術(shù)
在現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)中, 一個(gè)或更多的客戶可以共享數(shù)據(jù)庫(kù)系統(tǒng)硬件和 軟件的不同組分。與各客戶如果必須購(gòu)買(mǎi)用于自身的硬件和軟件的情況相 比,這種共享硬件和軟件的途徑使得能以遠(yuǎn)為更低的成本提供與數(shù)據(jù)庫(kù)相 關(guān)的服務(wù)。在這種系統(tǒng)中,高度期望保證客戶數(shù)據(jù)保持安全,而且在組 織中只有適當(dāng)用戶才能看見(jiàn)以及進(jìn)行更新。數(shù)據(jù)安全以物理安全開(kāi)始,包括入侵檢測(cè)和物理訪問(wèn)控制。在網(wǎng)絡(luò)層, 除了適當(dāng)通過(guò)HTTP協(xié)議之外,通常使用工業(yè)標(biāo)準(zhǔn)網(wǎng)絡(luò)防火墻來(lái)阻塞對(duì)數(shù) 據(jù)中心內(nèi)所有機(jī)器的訪問(wèn)。此外,也可以從數(shù)據(jù)中心外部對(duì)網(wǎng)絡(luò)進(jìn)行掃描,以確信網(wǎng)絡(luò)防火墻正在阻塞所有未經(jīng)授權(quán)的訪問(wèn)。雖然如此,仍然有用的 是,提供另外的或者可選擇的安全系統(tǒng)和方法,作為針對(duì)可能導(dǎo)致將錯(cuò)誤 頁(yè)面或數(shù)據(jù)返回給用戶的應(yīng)用軟件、系統(tǒng)及網(wǎng)絡(luò)軟件、和/或系統(tǒng)及網(wǎng)絡(luò)硬 件中的可能錯(cuò)誤或缺陷的防御。因此,期望提供系統(tǒng)和方法,以保證共享的硬件和軟件基礎(chǔ)結(jié)構(gòu)中的 任何錯(cuò)誤或缺陷都不會(huì)導(dǎo)致將極其重要的客戶數(shù)據(jù)交付給錯(cuò)誤的用戶。發(fā)明內(nèi)容本發(fā)明提供用于在多租戶數(shù)據(jù)庫(kù)網(wǎng)絡(luò)環(huán)境中提高系統(tǒng)及網(wǎng)絡(luò)安全的系統(tǒng)和方法。這些系統(tǒng)和方法采用一種或多種技術(shù),諸如識(shí)別可疑查詢計(jì) 劃;比較包括在查詢中的用戶和組織信息與包括在來(lái)自應(yīng)用服務(wù)器的響應(yīng) 中的用戶和組織信息,以驗(yàn)證響應(yīng)確實(shí)發(fā)送給適當(dāng)?shù)挠脩簦灰约?,通過(guò)比 較存儲(chǔ)在客戶機(jī)處的用戶和組織ID信息與響應(yīng)中的類似信息,驗(yàn)證來(lái)自應(yīng) 用服務(wù)器的響應(yīng)是否確實(shí)發(fā)送給適當(dāng)?shù)挠脩粝到y(tǒng)。采用這些技術(shù)中的一種 或多種,可以使實(shí)施方式能在多租戶環(huán)境下保護(hù)客戶數(shù)據(jù)。如在此使用的那樣,在說(shuō)明書(shū)中,術(shù)語(yǔ)多租戶數(shù)據(jù)庫(kù)系統(tǒng)指那些系統(tǒng), 其中數(shù)據(jù)庫(kù)系統(tǒng)的硬件和軟件的不同組分可以由一個(gè)或更多客戶共享。例 如,給定的應(yīng)用服務(wù)器可以同時(shí)為許多客戶處理請(qǐng)求;以及,給定的數(shù)據(jù) 庫(kù)表格可以為潛在的更大量的客戶存儲(chǔ)行。如在此使用的那樣,在說(shuō)明書(shū) 中,術(shù)語(yǔ)查詢計(jì)劃指用于在數(shù)據(jù)庫(kù)系統(tǒng)中訪問(wèn)信息的一組步驟。根據(jù)一種實(shí)施方式并作為示例,查詢計(jì)劃?rùn)z測(cè)模塊輪詢數(shù)據(jù)庫(kù)系統(tǒng), 以判斷任何查詢計(jì)劃是否為可疑查詢計(jì)劃,如果是則發(fā)出警報(bào)??梢刹樵?計(jì)劃包括在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)該從不出現(xiàn)的那些查詢計(jì)劃,以及應(yīng)該 只在少數(shù)識(shí)別過(guò)的情況下出現(xiàn)的查詢計(jì)劃,舉例來(lái)說(shuō),諸如讀取多個(gè)分區(qū) 的結(jié)合(join)以及散列結(jié)合(hashjoin)。因?yàn)樵诙嘧鈶魯?shù)據(jù)庫(kù)中各組織的 數(shù)據(jù)可以被存儲(chǔ)在單個(gè)物理數(shù)據(jù)庫(kù)分區(qū)中,由用戶發(fā)起的在多個(gè)分區(qū)中訪 問(wèn)數(shù)據(jù)的任何查詢都可以被視為是可疑查詢計(jì)劃。類似地,在使用大表格 以跨越多個(gè)租戶存儲(chǔ)數(shù)據(jù)的情況下,讀取表格中全部或大部分?jǐn)?shù)據(jù)行的任 何查詢計(jì)劃也都可以被視為是可疑的。為了簡(jiǎn)潔在此未列舉的其他可疑查 詢計(jì)劃也都在實(shí)施方式的設(shè)想之中。此外,取代或者除發(fā)出警報(bào)之外,實(shí) 施方式還可以執(zhí)行其他動(dòng)作,諸如不帶限制地廢除可疑查詢計(jì)劃、延遲查 詢計(jì)劃的執(zhí)行、記錄審核消息等。實(shí)施方式還可以判斷特殊可疑查詢計(jì)劃 是否為查詢計(jì)劃例外類的成員,如果是則可以允許執(zhí)行該查詢計(jì)劃而不發(fā) 出警報(bào)。根據(jù)另一實(shí)施方式,服務(wù)器側(cè)防火墻系統(tǒng)包括位于應(yīng)用服務(wù)器與客戶 機(jī)系統(tǒng)之間的一個(gè)或多個(gè)防火墻服務(wù)器的堆疊。防火墻服務(wù)器記錄關(guān)于所 接收的各客戶機(jī)請(qǐng)求的用戶和組織信息,并比較該信息與包括在來(lái)自應(yīng)用 服務(wù)器的響應(yīng)中的用戶和組織信息,以驗(yàn)證響應(yīng)確實(shí)發(fā)送給適當(dāng)?shù)挠脩?。根?jù)另一實(shí)施方式,客戶機(jī)側(cè)防火墻系統(tǒng)包括在客戶機(jī)系統(tǒng)上執(zhí)行的邏輯, 該邏輯通過(guò)比較存儲(chǔ)在客戶機(jī)處的用戶和組織ID信息與響應(yīng)中的類似信 息,驗(yàn)證來(lái)自應(yīng)用服務(wù)器的響應(yīng)是否確實(shí)發(fā)送給適當(dāng)?shù)挠脩粝到y(tǒng)??蛻魴C(jī) 側(cè)防火墻對(duì)檢測(cè)網(wǎng)絡(luò)硬件和/或軟件消息傳送中的錯(cuò)誤是有用的??蛻魴C(jī)和服務(wù)器防火墻的實(shí)施方式可以基于類似的原理跟蹤正在請(qǐng) 求頁(yè)面的用戶和組織,然后保證返回給用戶的頁(yè)面正是實(shí)際想要提供給那 個(gè)用戶。在實(shí)施方式中,這些途徑可以提供針對(duì)應(yīng)用軟件、系統(tǒng)軟件或硬 件中可能導(dǎo)致將錯(cuò)誤頁(yè)面返回給用戶的錯(cuò)誤或缺點(diǎn)的防御。在示例客戶機(jī)側(cè)防火墻實(shí)施方式中,使用用戶和組織的唯一 ID (例如, 在用戶散列cookie中)來(lái)跟蹤正在請(qǐng)求頁(yè)面的用戶。服務(wù)器防火墻利用對(duì) 話ID ( SID )(其分配給為鑒定過(guò)的用戶直接建立的各對(duì)話)對(duì)此進(jìn)行跟蹤。 因?yàn)镾ID是潛在敏感信息,可能并不希望在每個(gè)頁(yè)面上返回,本實(shí)施方式 中的應(yīng)用服務(wù)器在被返回頁(yè)面的超文本標(biāo)志語(yǔ)言(HTML)中直接插進(jìn)用戶 散列、以及在超文本傳送協(xié)議(HTTP)標(biāo)題中直接插入SID。服務(wù)器防火 墻掃描各頁(yè)面標(biāo)題中的SID,然后在將頁(yè)面返回給客戶機(jī)之前除去SID。然 而,在一方面,在通過(guò)客戶機(jī)防火墻確認(rèn)的場(chǎng)合,在HTML中保留用戶散 列。服務(wù)器防火墻實(shí)施方式可以具有的優(yōu)點(diǎn)在于為每個(gè)請(qǐng)求運(yùn)行服務(wù)器 防火墻,而客戶機(jī)防火墻只為支持實(shí)現(xiàn)防火墻的邏輯平臺(tái)(例如,Java、 JavaScript、 ActiveX等)的客戶機(jī)運(yùn)行。然而,客戶機(jī)防火墻實(shí)施方式可以 具有的優(yōu)點(diǎn)在于客戶機(jī)防火墻可以捕獲在服務(wù)器防火墻與客戶機(jī)防火墻 之間網(wǎng)絡(luò)層中的錯(cuò)誤,這種錯(cuò)誤用服務(wù)器防火墻則捕獲不到。參考說(shuō)明書(shū)的其余部分,包括附圖和權(quán)利要求,將會(huì)了解本發(fā)明的其 他特點(diǎn)和優(yōu)點(diǎn)。下面,參照附圖詳細(xì)說(shuō)明本發(fā)明進(jìn)一步的特點(diǎn)和優(yōu)點(diǎn)、以 及本發(fā)明的不同實(shí)施方式的結(jié)構(gòu)和操作。在附圖中,相同的標(biāo)號(hào)說(shuō)明相同 或功能類似的部分。


下面參照附圖描述根據(jù)本發(fā)明的不同實(shí)施方式,其中 圖1圖示其中可以使用多租戶數(shù)據(jù)庫(kù)系統(tǒng)的環(huán)境; 圖2更具體地圖示圖1的組元和各種互連;圖3圖示根據(jù)一種實(shí)施方式的數(shù)據(jù)庫(kù)查詢計(jì)劃?rùn)z測(cè)系統(tǒng)200的結(jié)構(gòu); 圖4圖示根據(jù)一種實(shí)施方式的服務(wù)器側(cè)防火墻系統(tǒng)300的結(jié)構(gòu);以及 圖5圖示根據(jù)本發(fā)明一種實(shí)施方式的客戶機(jī)防火墻處理。
具體實(shí)施方式
根據(jù)本發(fā)明的實(shí)施方式提供了在多租戶數(shù)據(jù)庫(kù)網(wǎng)絡(luò)環(huán)境中保護(hù)客戶數(shù) 據(jù)的系統(tǒng)和方法。特別地,這些系統(tǒng)和方法幫助確保在多租戶數(shù)據(jù)庫(kù)網(wǎng) 絡(luò)系統(tǒng)的共享軟件和硬件結(jié)構(gòu)中可能出現(xiàn)的任何錯(cuò)誤或缺陷,都不會(huì)導(dǎo)致 頁(yè)面或數(shù)據(jù)分送給錯(cuò)誤的用戶。在某些方面,這些系統(tǒng)和方法分析查詢計(jì) 劃、并檢測(cè)應(yīng)該從不出現(xiàn)、或者只在少數(shù)明確定義的環(huán)境中出現(xiàn)的某些查 詢計(jì)劃。此外,才艮據(jù)某些實(shí)施方式的服務(wù)器側(cè)防火墻系統(tǒng)和方法,保證發(fā) 送給用戶的數(shù)據(jù)和頁(yè)面的安全不會(huì)受到服務(wù)器側(cè)的基礎(chǔ)結(jié)構(gòu)問(wèn)題的影響。 在某些方面,提供客戶機(jī)側(cè)防火墻系統(tǒng)和方法,用于保證發(fā)送給用戶的數(shù) 據(jù)和頁(yè)面的安全不會(huì)受到網(wǎng)絡(luò)層基礎(chǔ)結(jié)構(gòu)問(wèn)題的影響。安全概述應(yīng)用級(jí)的安全可以概念化為包括三個(gè)主要方面鑒別、授權(quán)和審核。 筌別機(jī)制通常要求注冊(cè)進(jìn)入服務(wù)的各用戶輸入他們的密碼??梢詫⒋嗣艽a 與存儲(chǔ)在例如數(shù)據(jù)庫(kù)中的密碼進(jìn)行核對(duì),以驗(yàn)證用戶身份。 一旦驗(yàn)證之后, 為此用戶創(chuàng)建對(duì)話,并將對(duì)話ID ( SID )分配給該對(duì)話,SID可以包括諸如 用戶ID、組織ID、客戶機(jī)IP地址、以及過(guò)期時(shí)間等信息。此外,可以對(duì) SID進(jìn)行加密,以避免惡意黑客改變其內(nèi)容。SID通常作為超文本傳輸協(xié)議(HTTP ) cookie返回給用戶,用于利用 瀏覽器的客戶機(jī)訪問(wèn);或者作為串?dāng)?shù)據(jù)字段返回給用戶,用于借助應(yīng)用程 序設(shè)計(jì)接口 ( API)的客戶機(jī)訪問(wèn)。在各后續(xù)請(qǐng)求中,客戶機(jī)返回包含該SID 的這種cookie或數(shù)據(jù)字段。當(dāng)處理請(qǐng)求時(shí),應(yīng)用服務(wù)器首先讀取SID、解 密SID,以驗(yàn)證SID未被篡改,以及,驗(yàn)證該SID未過(guò)期并且該用戶還被 授權(quán)從專用IP地址訪問(wèn)系統(tǒng)。對(duì)于在SID被設(shè)置為過(guò)期之前(例如,15分 鐘)發(fā)生在窗口內(nèi)的任何請(qǐng)求,應(yīng)用服務(wù)器可以通過(guò)以更遲的過(guò)期時(shí)間創(chuàng) 建新SID來(lái)"延長(zhǎng)對(duì)話的壽命"。一旦應(yīng)用知道用戶的身份以及用戶所屬的組織(來(lái)自例如上述SID機(jī) 制),授權(quán)機(jī)制通常包括基于用戶簡(jiǎn)檔對(duì)不同特征和功能的實(shí)施適當(dāng)訪問(wèn)的應(yīng)用。應(yīng)用還基于為該組織配置的任何數(shù)據(jù)共享準(zhǔn)則實(shí)施適當(dāng)?shù)臄?shù)據(jù)行訪 問(wèn)。審核機(jī)制通常包括這樣的應(yīng)用,例如,基于來(lái)自SID的用戶ID和組織ID,記錄用戶注冊(cè)日期時(shí)間以及他們?cè)谙到y(tǒng)上執(zhí)行的動(dòng)作。該信息可以用于各種審核行為。下面,參照示例的實(shí)施方式,在一個(gè)或更多的鑒別、授權(quán)和審核方面, 說(shuō)明用于對(duì)應(yīng)用安全提供改進(jìn)的機(jī)制和方法。 系統(tǒng)概述圖1圖示一種其中可以使用多租戶數(shù)據(jù)庫(kù)系統(tǒng)的環(huán)境。如圖l(以及圖2中更為詳細(xì))所示,用戶系統(tǒng)12可以經(jīng)由網(wǎng)絡(luò)14與多租戶數(shù)據(jù)庫(kù)系統(tǒng) (MTS)16相互作用。這些用戶系統(tǒng)12的用戶可以是處于不同能力的用戶, 而特定用戶系統(tǒng)12的能力可以由關(guān)于當(dāng)前用戶的許可(許可等級(jí))完全確 定。例如,在銷售人員使用特定用戶系統(tǒng)12與MTS16相互作用的情況下, 用戶系統(tǒng)具有分配給該銷售人員的能力。然而,當(dāng)管理人員使用該用戶系 統(tǒng)與MTS 16相互作用時(shí),該用戶系統(tǒng)具有分配給該管理人員的能力。在具 有層次角色模型的系統(tǒng)中,處于一種許可等級(jí)的用戶,可以具有對(duì)可由更 低許可等級(jí)用戶訪問(wèn)的應(yīng)用、數(shù)據(jù)和數(shù)據(jù)庫(kù)信息的訪問(wèn),但不能具有對(duì)可 由處于更高許可等級(jí)的用戶訪問(wèn)的某些應(yīng)用、數(shù)據(jù)庫(kù)信息和數(shù)據(jù)的訪問(wèn)。 因此,對(duì)于訪問(wèn)和修改應(yīng)用及數(shù)據(jù)庫(kù)信息而言,不同的用戶具有不同的能 力,這取決于用戶安全或許可等級(jí)。網(wǎng)纟各14可以是LAN (局i或網(wǎng))、WAN (廣域網(wǎng))、無(wú)線網(wǎng)、點(diǎn)對(duì)點(diǎn)網(wǎng)、 星型網(wǎng)、令牌環(huán)形網(wǎng)、集線器網(wǎng)或其他適當(dāng)?shù)慕Y(jié)構(gòu)。作為目前使用的最通 用類型的網(wǎng)絡(luò)是TCP/IP (傳輸控制協(xié)議和網(wǎng)際協(xié)議)網(wǎng)絡(luò),諸如網(wǎng)絡(luò)的全 球互聯(lián)網(wǎng)經(jīng)常以字母'T稱為"因特網(wǎng)",這將在本文的許多示例中使用。 然而,應(yīng)當(dāng)理解,本發(fā)明可以使用的網(wǎng)絡(luò)并不局限于此,盡管TCP/IP是目 前首選的協(xié)i義。用戶系統(tǒng)12可以使用TCP/IP與MTS 16通信,以及,在更高的網(wǎng)絡(luò)層, 使用其他通用網(wǎng)際協(xié)議進(jìn)行通信,諸如HTTP、 FTP、 AFS、 WAP等。在使 用HTTP的示例中,用戶系統(tǒng)12可以包括通常稱為"瀏覽器"的HTTP客 戶機(jī)程序,用于向MTS 16處的HTTP服務(wù)器發(fā)送HTTP消息、以及接收來(lái) 自MTS 16處的HTTP服務(wù)器的消息。這種HTTP服務(wù)器可以實(shí)現(xiàn)為MTS 16與網(wǎng)絡(luò)14之間的唯一的網(wǎng)絡(luò)接口,但也可以還使用其他技術(shù)或被取代。在有些實(shí)現(xiàn)中,MTS 16與網(wǎng)絡(luò)14之間的接口包括負(fù)荷共享功能,諸如循環(huán) 復(fù)用HTTP請(qǐng)求分配器,以便在多個(gè)服務(wù)器之間平衡負(fù)荷并均勻分配到來(lái) 的HTTP請(qǐng)求。優(yōu)選的是,多個(gè)服務(wù)器中的每一個(gè)都具有對(duì)MTS數(shù)據(jù)的訪 問(wèn),至少對(duì)訪問(wèn)該服務(wù)器的用戶而言。在一方面,圖1中示出的系統(tǒng)實(shí)現(xiàn)了基于web的客戶關(guān)系管理(CRM) 系統(tǒng)。例如,在一方面,MTS 16包括應(yīng)用服務(wù)器,配置用來(lái)實(shí)現(xiàn)并執(zhí)行CRM 軟件應(yīng)用,以及向和從用戶系統(tǒng)12提供相關(guān)的數(shù)據(jù)、代碼、表單、網(wǎng)頁(yè)和 其他信息;以及,用來(lái)將相關(guān)的數(shù)據(jù)、對(duì)象和網(wǎng)頁(yè)內(nèi)容存儲(chǔ)至數(shù)據(jù)庫(kù)系統(tǒng), 并且從數(shù)據(jù)庫(kù)系統(tǒng)檢索相關(guān)的數(shù)據(jù)、對(duì)象和網(wǎng)頁(yè)內(nèi)容。采用多租戶系統(tǒng), 關(guān)于多個(gè)租戶的數(shù)據(jù)可以存儲(chǔ)在相同的物理數(shù)據(jù)庫(kù)對(duì)象中,然而,通常將租戶數(shù)據(jù)排列成使一個(gè)租戶的數(shù)據(jù)與其他租戶的數(shù)據(jù)保持邏輯上的獨(dú)立, 因而一個(gè)租戶不能訪問(wèn)其他租戶的數(shù)據(jù),除非這種數(shù)據(jù)是明顯共享的。在 某些方面,系統(tǒng)16實(shí)現(xiàn)不同于或除CRM應(yīng)用之外的應(yīng)用。例如,系統(tǒng)16 可以提供租戶對(duì)多宿主(標(biāo)準(zhǔn)和定制)應(yīng)用包括CRM應(yīng)用的訪問(wèn)。用于MTS 16、的部件的一種排列示于圖1中,包括網(wǎng)絡(luò)接口 20;存 儲(chǔ)器22,用于租戶數(shù)據(jù);存儲(chǔ)器24,用于系統(tǒng)數(shù)據(jù),對(duì)于MTS 16和可能 的多個(gè)租戶來(lái)說(shuō)可訪問(wèn);程序代碼26,用于實(shí)現(xiàn)MTS 16的各種功能;以 及處理空間28,用于執(zhí)行MTS系統(tǒng)處理和租戶特定處理,諸如運(yùn)行作為應(yīng) 用宿主服務(wù)一部分的應(yīng)用。在MTS 16上可以執(zhí)行的另外處理包括數(shù)據(jù)庫(kù)索 引處理。示于圖1系統(tǒng)中的幾個(gè)部件包括在此無(wú)需詳細(xì)說(shuō)明的常規(guī)公知的部件。 例如,各用戶系統(tǒng)12可以包括桌面?zhèn)€人計(jì)算機(jī)、工作站、膝上型電腦、PDA、 蜂窩電話、或者任何一種無(wú)線訪問(wèn)協(xié)議(WAP)使能設(shè)備、或者能夠與因 特網(wǎng)或其他網(wǎng)絡(luò)連接直接或間接接口的任何其他計(jì)算設(shè)備。用戶系統(tǒng)12通 常運(yùn)行HTTP客戶機(jī)程序,例如瀏覽程序,諸如Microsoft's Internet Explorer browser、 Netscape's Navigator browser、 Opera's browser、或在蜂窩電話、PDA 或其他無(wú)線設(shè)備等情況下的WAP使能瀏覽器,允許用戶系統(tǒng)12的用戶(例 如多租戶數(shù)據(jù)庫(kù)系統(tǒng)的訂戶)對(duì)其在網(wǎng)絡(luò)14上從MTS 16能得到的信息、 頁(yè)面及應(yīng)用進(jìn)行訪問(wèn)、處理及查看。各用戶系統(tǒng)12通常還包括一個(gè)或更多 的用戶接口裝置,諸如鍵盤(pán)、鼠標(biāo)、觸摸屏、手寫(xiě)筆等,用來(lái)與顯示器上(例如,監(jiān)視器屏幕、LCD顯示器等)由瀏覽器提供的圖形用戶接口 ( GUI )、 連同由MTS 16或其他系統(tǒng)或服務(wù)器提供的頁(yè)面、表單、應(yīng)用和其他信息一 起進(jìn)行交互。例如,可以使用用戶接口裝置訪問(wèn)由MTS 16宿主的數(shù)據(jù)和應(yīng) 用,以及對(duì)所存儲(chǔ)的數(shù)據(jù)執(zhí)行搜索等等,或者,允許用戶與可能呈現(xiàn)給用 戶的不同GUI頁(yè)面進(jìn)行交互。如上所述,本發(fā)明適合于與因特網(wǎng)一起使用,因特網(wǎng)指網(wǎng)絡(luò)的特定全 球互聯(lián)網(wǎng)。然而,應(yīng)當(dāng)理解,可以使用其他網(wǎng)絡(luò)代替因特網(wǎng),諸如內(nèi)聯(lián)網(wǎng)、 外聯(lián)網(wǎng)、虛擬個(gè)人網(wǎng)(VPN)、非基于TCP/IP的網(wǎng)絡(luò)、以及LAN或WAN 等。根據(jù)一種實(shí)施方式,各用戶系統(tǒng)12及其所有部件是操作者使用諸如瀏 覽器的應(yīng)用可配置的,這些應(yīng)用包括使用諸如Intel Pentium處理器等的中央 處理單元的計(jì)算機(jī)代碼運(yùn)行。類似地,MTS 16 (以及不只存在一個(gè)情況下 MTS的另外實(shí)例)和所有它們的部件,可以是操作者使用應(yīng)用可配置的, 應(yīng)用包括使用諸如Intel Pentium處理器等、或多處理器單元的中央處理單元 的計(jì)算機(jī)代碼運(yùn)行。用于操作和配置MTS 16以互通消息以及處理網(wǎng)頁(yè)、應(yīng) 用和其他數(shù)據(jù)以及如這里所描述的i某體內(nèi)容的計(jì)算機(jī)代碼,優(yōu)選地被下載 并存儲(chǔ)在硬盤(pán)上,不過(guò),整個(gè)程序代碼或其部分,也可以存儲(chǔ)在任何其他 如所公知的易失性存儲(chǔ)器或非易失性存儲(chǔ)器介質(zhì)或裝置中,例如ROM和 RAM,或者提供在任何能夠存儲(chǔ)程序代碼的介質(zhì)上,諸如壓縮光盤(pán)(CD) 介質(zhì)、數(shù)字通用光盤(pán)(DVD)介質(zhì)、軟盤(pán)等。另外,整個(gè)程序代碼或其部 分,可以例如在因特網(wǎng)上傳輸從軟件源下載,或者從如公知的從其他服務(wù) 器下載,或者如公知的使用任何通訊介質(zhì)和協(xié)議(例如,TCP/IP、 HTTP、 HTTPS、以太網(wǎng)等)在如所公知的任何其他常規(guī)網(wǎng)絡(luò)連接(例如,外聯(lián)網(wǎng)、 VPN、 LAN等)上傳輸。同樣值得贊許的是,用于實(shí)現(xiàn)本發(fā)明的方面的計(jì) 算機(jī)代碼可以實(shí)現(xiàn)為在客戶機(jī)系統(tǒng)和/或服務(wù)器或服務(wù)器系統(tǒng)上可以執(zhí)行的 任何編程語(yǔ)言,例如,諸如C、 C + +、 HTML、任何其他標(biāo)志語(yǔ)言、Java、 JavaScript、 ActiveX、任何其他腳本語(yǔ)言如VBScript、以及如公知的許多其 孑也編程-浩言。根據(jù)一種實(shí)施方式,各MTS 16被配置用于向用戶(客戶機(jī))系統(tǒng)12 提供網(wǎng)頁(yè)、表單、應(yīng)用、數(shù)據(jù)和媒體內(nèi)容,以支持由作為MTS 16租戶的用 戶系統(tǒng)12進(jìn)行的訪問(wèn)。同樣,MTS 16提供安全機(jī)制,以保持各租戶數(shù)據(jù)隔離,除非該數(shù)據(jù)被共享。如果使用不只一個(gè)MTS,它們可以位置上彼此 接近(例如,在位于單棟建筑物或校園內(nèi)的服務(wù)器站),或者,它們可以分布于彼此遙遠(yuǎn)的位置(例如, 一臺(tái)或多臺(tái)服務(wù)器位于城市A,而一臺(tái)或多 臺(tái)服務(wù)器位于城市B)。在這里使用時(shí),各MTS可以包括一臺(tái)或多臺(tái)邏輯上 和/或物理上連接但局部分布或者跨越一個(gè)或更多地理位置的服務(wù)器。另外, 術(shù)語(yǔ)"服務(wù)器"意思包括計(jì)算機(jī)系統(tǒng),如本領(lǐng)域公知的,計(jì)算機(jī)系統(tǒng)包括 處理硬件及處理空間、以及相關(guān)的存"fi者系統(tǒng)和數(shù)據(jù)庫(kù)應(yīng)用(例如,OODBMS 或RDBMS)。還應(yīng)當(dāng)理解,"服務(wù)器系統(tǒng)"和"服務(wù)器"在這里經(jīng)??苫Q 使用。類似地,這里所描述的數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)為單數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)、 分布式數(shù)據(jù)庫(kù)的集合、帶有在線冗余或離線備份或其他冗余等的數(shù)據(jù)庫(kù), 以及可以包括分布式數(shù)據(jù)庫(kù)或存儲(chǔ)網(wǎng)絡(luò)以及相關(guān)的處理智能。圖2更具體地圖示MTS 16的部件和各種互連。在本示例中,網(wǎng)絡(luò)接口 實(shí)現(xiàn)為一個(gè)或多個(gè)HTTP應(yīng)用服務(wù)器100。還示出系統(tǒng)處理空間102,包括 個(gè)別租戶處理空間104、系統(tǒng)數(shù)據(jù)庫(kù)106、租戶數(shù)據(jù)庫(kù)108、以及租戶管理 處理空間110。租戶數(shù)據(jù)庫(kù)108可以分成個(gè)別租戶存儲(chǔ)區(qū)112,其可以是物 理排列或邏輯排列。在各租戶存儲(chǔ)區(qū)112內(nèi),可以為各用戶類似地配給用 戶存儲(chǔ)區(qū)114。例如,用戶最近使用(MRU)項(xiàng)目的副本可以存儲(chǔ)至用戶 存儲(chǔ)區(qū)114。類似地,用于作為一個(gè)租戶的整個(gè)組織的MRU項(xiàng)目的副本也 可以存儲(chǔ)至租戶存儲(chǔ)區(qū)112。還應(yīng)當(dāng)理解,經(jīng)由不同的網(wǎng)絡(luò)連接,各應(yīng)用服務(wù)器100能可通信地耦 合至數(shù)據(jù)庫(kù)系統(tǒng),例如系統(tǒng)數(shù)據(jù)庫(kù)106和租戶數(shù)據(jù)庫(kù)108。例如,服務(wù)器 IOO,可以經(jīng)由因特網(wǎng)連接,另一服務(wù)器IOON.,可以經(jīng)由直接網(wǎng)絡(luò)鏈接耦合,而另一服務(wù)器IOON則可以經(jīng)由另外不同的網(wǎng)絡(luò)連接進(jìn)行耦合。傳輸控制協(xié)議和網(wǎng)際協(xié)議(TCP/IP)是用于服務(wù)器100與數(shù)據(jù)庫(kù)系統(tǒng)之間通信的典型 協(xié)議,然而,本領(lǐng)域技術(shù)人員易于理解,也可以使用其他傳輸協(xié)議,以根 據(jù)所使用的網(wǎng)絡(luò)互連來(lái)優(yōu)化系統(tǒng)。在某些方面,各應(yīng)用服務(wù)器100配置成處理關(guān)于與作為一個(gè)租戶的任 何組織相關(guān)聯(lián)的任何一個(gè)用戶的請(qǐng)求。因?yàn)橄M氖牵芤蛉魏卧蛟谌?何時(shí)間添加應(yīng)用服務(wù)器到服務(wù)器組中或從服務(wù)器組中去除應(yīng)用服務(wù)器,優(yōu) 選的是,對(duì)于用戶和/或組織不存在任何對(duì)于特定的應(yīng)用服務(wù)器100的服務(wù) 器仿射性(affinity )。所以,在一種實(shí)施方式中,將實(shí)現(xiàn)負(fù)荷平衡功能(例如,F(xiàn)5 Big-IP負(fù)荷平衡器)的接口系統(tǒng)(例如,參見(jiàn)圖4)可通信地耦合 在服務(wù)器100與用戶系統(tǒng)12之間,以分配對(duì)服務(wù)器100的請(qǐng)求。在一方面, 負(fù)荷平衡器使用最小連接算法將用戶請(qǐng)求路由向服務(wù)器100。也可以使用負(fù) 荷平衡算法的其他示例,諸如循環(huán)復(fù)用和觀測(cè)響應(yīng)時(shí)間。例如,在某些方 面,來(lái)自同一用戶的三個(gè)連續(xù)請(qǐng)求可能命中三個(gè)不同的服務(wù)器100,而來(lái)自 不同用戶的三個(gè)請(qǐng)求則可能命中同一服務(wù)器100。按照這種方式,MTS 16 是多租戶的,其中MTS 16處理跨越完全不同的用戶和組織的不同對(duì)象、數(shù) 據(jù)和應(yīng)用的存貯以及對(duì)它們的訪問(wèn)。作為存儲(chǔ)的示例, 一個(gè)租戶可能是雇用了銷售力量的公司,其中各銷 售人員使用MTS 16以管理他們的銷售處理。因此,用戶可能維持合同數(shù)據(jù)、 訂貨至交貨時(shí)間數(shù)據(jù)(leads data )、客戶跟蹤數(shù)據(jù)、性能數(shù)據(jù)、目標(biāo)和進(jìn)展 數(shù)據(jù)等所有可應(yīng)用于該用戶的個(gè)人銷售處理(例如,在租戶數(shù)據(jù)庫(kù)108中)。 在優(yōu)選的MTS安排中,由于要訪問(wèn)、查看、修改、報(bào)告、傳輸、計(jì)算等的 所有該數(shù)據(jù)和應(yīng)用,都可以借助于具有不比網(wǎng)絡(luò)訪問(wèn)多任何內(nèi)容的用戶系 統(tǒng)進(jìn)行維持和訪問(wèn),所以,用戶從許多不同用戶系統(tǒng)的任何一個(gè)都可以管 理其銷售成就和周轉(zhuǎn)周期。例如,如果銷售人員正在訪問(wèn)在其接待室里具有因特網(wǎng)入口的客戶,銷售人員在等待客戶到達(dá)接待室的同時(shí),可以獲得 關(guān)于此客戶的關(guān)鍵更新。盡管各用戶的數(shù)據(jù)可以與其他用戶的數(shù)據(jù)隔離而與各用戶的雇主無(wú) 關(guān),但有些數(shù)據(jù)可以是由作為一個(gè)租戶的給定組織的多個(gè)用戶或所有用戶 共享或可訪問(wèn)的組織范圍內(nèi)的數(shù)據(jù)。因此,可能有一些數(shù)據(jù)結(jié)構(gòu)由MTS 16 進(jìn)行管理,將其定位于租戶級(jí);同時(shí),另外的數(shù)據(jù)結(jié)構(gòu)則可以在用戶級(jí)進(jìn) 行管理。因?yàn)镸TS可以支持包括可能是竟?fàn)帉?duì)手的多個(gè)租戶,所以MTS 應(yīng)當(dāng)具有安全協(xié)議,其保持?jǐn)?shù)據(jù)、應(yīng)用以及應(yīng)用使用分離。此外,因?yàn)樵S 多租戶將選擇對(duì)MTS進(jìn)行訪問(wèn),而不是維持它們自己的系統(tǒng),所以,冗余、 及時(shí)和備份是附加的重要功能,而且需要在MTS中實(shí)現(xiàn)。除了用戶特定數(shù)據(jù)和租戶特定數(shù)據(jù)之外,MTS 16還能維持可以由多個(gè) 租戶或其他數(shù)據(jù)使用的系統(tǒng)級(jí)數(shù)據(jù)。這種系統(tǒng)級(jí)數(shù)據(jù)可以包括可在租戶之 中共享的工業(yè)報(bào)告、新聞、記錄等。在某些方面,客戶機(jī)系統(tǒng)12與應(yīng)用服務(wù)器100通信,以請(qǐng)求并更新來(lái) 自MTS 16的系統(tǒng)級(jí)和租戶級(jí)數(shù)據(jù),這可能需要對(duì)數(shù)據(jù)庫(kù)系統(tǒng)106和/或數(shù)據(jù)庫(kù)系統(tǒng)108的一次或更多次查詢。MTS 16 (例如,MTS 16中的應(yīng)用月良務(wù) 器100)自動(dòng)生成設(shè)計(jì)以訪問(wèn)期望信息的一個(gè)或更多的SQL陳述(SQL查 詢)。數(shù)據(jù)庫(kù)系統(tǒng)108可以生成從數(shù)據(jù)庫(kù)中訪問(wèn)所請(qǐng)求數(shù)據(jù)的查詢計(jì)劃。各數(shù)據(jù)庫(kù)通??梢员灰暈閷?duì)象的集合,諸如一組邏輯表格,包括符合 預(yù)定類別的數(shù)據(jù)。"表格,,是數(shù)據(jù)對(duì)象的一個(gè)代表,以及在此使用以簡(jiǎn)化根 據(jù)本發(fā)明的對(duì)象和客戶對(duì)象的概念性描述。應(yīng)當(dāng)理解"表格"和"對(duì)象" 在這里可以互換使用。各表格通常包含一個(gè)或更多的數(shù)據(jù)類別,邏輯上排 列成可視模式的列或字段。表格的各行或記錄包含由字段定義的關(guān)于各類 別的數(shù)據(jù)實(shí)例。例如,CRM數(shù)據(jù)庫(kù)可以包括以關(guān)于諸如姓名、地址、電話 號(hào)碼、傳真號(hào)碼等基本合同信息的字段描述客戶的表格。另一表格可以描 述定購(gòu)單,其包括關(guān)于諸如客戶、產(chǎn)品、銷售價(jià)格、日期等信息的字段。 在有些多租戶系統(tǒng)中,可以提供適合于所有租戶使用的標(biāo)準(zhǔn)實(shí)體表格。對(duì) 于CRM數(shù)據(jù)庫(kù)應(yīng)用而言,這樣的標(biāo)準(zhǔn)實(shí)體可以包括用于帳目、合同、訂貨 至交貨時(shí)間和機(jī)會(huì)數(shù)據(jù),各自包含預(yù)定義的字段。應(yīng)當(dāng)理解,"實(shí)體"在這 里也可以與"對(duì)象,,和"表格,,互換使用。在有些多租戶數(shù)據(jù)庫(kù)系統(tǒng)中,可以允許租戶創(chuàng)建并存儲(chǔ)定制對(duì)象,或 者可以允許他們定制標(biāo)準(zhǔn)實(shí)體或?qū)ο?,例如通過(guò)創(chuàng)建用于標(biāo)準(zhǔn)對(duì)象的客戶 字段,包括定制索引字段。2004年4月2日提交的名稱為"Custom Entities and Fields In a Multi-Tenant Database System"美國(guó)專利申請(qǐng)系列號(hào)為No. 10/817161專利申請(qǐng)講授了用于在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中創(chuàng)建定制對(duì)象以及定 制標(biāo)準(zhǔn)對(duì)象的系統(tǒng)和方法,該申i貪以引用的方式在此并入本文。例如,在 某些方面,所有的定制實(shí)體數(shù)據(jù)行存儲(chǔ)在單一的多租戶物理表格中,其可 以包括每個(gè)組織的多個(gè)邏輯表格。對(duì)客戶透明的是,他們的多個(gè)"表格" 實(shí)際上存儲(chǔ)在一個(gè)大表格中或者他們的數(shù)據(jù)可以與其他客戶的數(shù)據(jù)存儲(chǔ)在 相同的表格中。在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中,所有客戶可以共享運(yùn)行系統(tǒng)的硬件和軟件的 不同組分。例如,給定的應(yīng)用服務(wù)器可以同時(shí)處理關(guān)于數(shù)以百計(jì)客戶的請(qǐng) 求。以及,給定的數(shù)據(jù)庫(kù)表格可以存儲(chǔ)來(lái)自數(shù)以千計(jì)客戶的行。在這種系 統(tǒng)中,高度期望保證客戶數(shù)據(jù)保持安全,并且只有組織中的適當(dāng)用戶可以 看見(jiàn)以及進(jìn)行更新。盡管可以實(shí)現(xiàn)常規(guī)的數(shù)據(jù)安全,諸如入侵檢測(cè)和物理 訪問(wèn)控制、以及工業(yè)標(biāo)準(zhǔn)網(wǎng)絡(luò)防火墻,但仍然有用的是提供另外的或可選的安全系統(tǒng)和方法,作為針對(duì)可能導(dǎo)致將錯(cuò)誤頁(yè)面或數(shù)據(jù)返回給用戶的應(yīng) 用軟件、系統(tǒng)和網(wǎng)絡(luò)軟件和/或系統(tǒng)和網(wǎng)絡(luò)硬件中的錯(cuò)誤和缺陷的防范。 安全特征圖3圖示根據(jù)一種實(shí)施方式的數(shù)據(jù)庫(kù)查詢計(jì)劃^r測(cè)系統(tǒng)200。在一方 面,圖3的數(shù)據(jù)庫(kù)查詢計(jì)劃?rùn)z測(cè)系統(tǒng)實(shí)現(xiàn)在圖1的多租戶數(shù)據(jù)庫(kù)系統(tǒng)16中。 如圖所示,數(shù)據(jù)庫(kù)查詢計(jì)劃?rùn)z測(cè)系統(tǒng)200包括可與數(shù)據(jù)庫(kù)系統(tǒng)220 (例如, 圖2的系統(tǒng)數(shù)據(jù)庫(kù)106和/或租戶數(shù)據(jù)庫(kù)108)通信地耦合的數(shù)據(jù)庫(kù)查詢計(jì) 劃?rùn)z測(cè)模塊210。數(shù)據(jù)庫(kù)查詢計(jì)劃?rùn)z測(cè)模塊210執(zhí)行定期查詢數(shù)據(jù)庫(kù)220以 檢索并分析查詢計(jì)劃的處理。在某些方面,數(shù)據(jù)庫(kù)查詢計(jì)劃?rùn)z測(cè)模塊210 實(shí)現(xiàn)在如圖所示的獨(dú)立裝置諸如獨(dú)立的服務(wù)器或計(jì)算機(jī)系統(tǒng)中,盡管其值 得贊許,或者也可以將其實(shí)現(xiàn)在應(yīng)用服務(wù)器100或數(shù)據(jù)庫(kù)服務(wù)器中。在典型的多租戶數(shù)據(jù)庫(kù)方案中,某些查詢計(jì)劃應(yīng)該從不出現(xiàn),而另外 的查詢計(jì)劃只在少數(shù)鑒別過(guò)的環(huán)境中出現(xiàn)。這些可能包括讀取多個(gè)分區(qū)的 結(jié)合(join)和散列結(jié)合。例如,因?yàn)楦鹘M織的數(shù)據(jù)可以存儲(chǔ)在單個(gè)物理數(shù) 據(jù)庫(kù)分區(qū)中,所以,由用戶發(fā)起的訪問(wèn)多個(gè)分區(qū)中數(shù)據(jù)的任何查詢都是可 疑的。類似地,在使用大表格存儲(chǔ)跨越多個(gè)租戶的數(shù)據(jù)的情況下,讀取表 格中全部或者大部分?jǐn)?shù)據(jù)行的任何查詢計(jì)劃也是可疑的。在一方面,數(shù)據(jù)庫(kù)查詢計(jì)劃?rùn)z測(cè)模塊執(zhí)行獨(dú)立于數(shù)據(jù)庫(kù)運(yùn)行的后臺(tái)處 理,并經(jīng)常輪詢關(guān)于正在使用數(shù)據(jù)庫(kù)的查詢計(jì)劃的數(shù)據(jù)庫(kù),以查找任何非 預(yù)期的或可疑的計(jì)劃。如果它檢測(cè)到任何不適當(dāng)?shù)幕蚩梢傻牟樵冇?jì)劃,在 一方面,模塊判斷該可疑計(jì)劃是否歸入例外,例如執(zhí)行系統(tǒng)整理任務(wù)的查 詢計(jì)劃,如若不然,模塊記錄信息并發(fā)出適當(dāng)警報(bào)。如果該計(jì)劃歸入例外, 則可以允許其繼續(xù)進(jìn)行。在產(chǎn)品服務(wù)以及在開(kāi)發(fā)和測(cè)試期間都運(yùn)行此查詢 計(jì)劃?rùn)z測(cè)模塊是有益的,以便檢測(cè)可能導(dǎo)致由錯(cuò)誤客戶訪問(wèn)錯(cuò)誤數(shù)據(jù)的任 何代碼或基礎(chǔ)結(jié)構(gòu)問(wèn)題。可疑的其他查詢計(jì)劃的實(shí)例,包括涉及全表格掃描、合并結(jié)合笛卡兒 坐標(biāo)(merge join Cartesian )或"分區(qū)散列全部(Partition Hash All)"查詢 或類似操作的任何一種計(jì)劃。在"分區(qū)散列全部"查詢執(zhí)行步驟或類似情 況下,數(shù)據(jù)庫(kù)可能將整個(gè)分區(qū)讀進(jìn)存儲(chǔ)器,并對(duì)其進(jìn)行組織用于全面訪問(wèn)。 這意味著查詢將跨越物理分區(qū)進(jìn)行掃描。執(zhí)行任何全表格掃描的查詢計(jì)劃, 可能是不包括組織過(guò)濾器的查詢的象征。對(duì)于一個(gè)典型的多租戶數(shù)據(jù)庫(kù)方案而言,給定組織的行通常只是數(shù)據(jù)庫(kù)表格的較低百分比。如果數(shù)據(jù)庫(kù)正 在執(zhí)行"不使用索引"的全表格掃描,這表示查詢很可能遺漏了組織ID過(guò) 濾器。合并結(jié)合笛卡兒坐標(biāo)是一種特定計(jì)劃,其說(shuō)明數(shù)據(jù)庫(kù)(例如,由美
國(guó)加利福尼亞州Redwood Shores市的Oracle公司提供的數(shù)據(jù)庫(kù))正在試圖 通過(guò)將來(lái)自兩個(gè)表格的所有數(shù)據(jù)讀進(jìn)用于查詢的存儲(chǔ)器來(lái)優(yōu)化查詢,該查 詢將在該表格中訪問(wèn)高百分比的行。所有這些計(jì)劃在少數(shù)情況下可能是有 效的,因此,在一方面,它們將出現(xiàn)在"例外"清單中。
圖4圖示根據(jù)一種實(shí)施方式的服務(wù)器側(cè)防火墻系統(tǒng)300。在一方面,圖 4的防火墻系統(tǒng)與圖1的多租戶數(shù)據(jù)庫(kù)系統(tǒng)16—起實(shí)現(xiàn)。如圖所示,防火 墻系統(tǒng)300包括可與應(yīng)用服務(wù)器100通信耦合的一個(gè)或多個(gè)防火墻服務(wù)器 310。此處,出現(xiàn)了包括一個(gè)或多個(gè)負(fù)荷平衡服務(wù)器的負(fù)荷平衡系統(tǒng)305, 防火墻服務(wù)器310位于負(fù)荷平衡系統(tǒng)305與應(yīng)用服務(wù)器100之間。然而, 應(yīng)當(dāng)理解,防火墻服務(wù)器310的功能也可以在負(fù)荷平tf系統(tǒng)305中或者在 應(yīng)用服務(wù)器100中實(shí)現(xiàn)。然而,優(yōu)選的是,防火墻服務(wù)器功能與應(yīng)用服務(wù) 器分開(kāi),以及防火墻服務(wù)器在與應(yīng)用服務(wù)器不同的硬件和軟件平臺(tái)上運(yùn)行。 這使得影響一個(gè)系統(tǒng)(例如應(yīng)用服務(wù)器系統(tǒng)或者防火墻服務(wù)器系統(tǒng))的任 何基礎(chǔ)結(jié)構(gòu)問(wèn)題更少可能影響另一個(gè)。類似地,希望的是,負(fù)荷平衡系統(tǒng) 305在與防火墻服務(wù)器310不同的硬件和軟件平臺(tái)上運(yùn)行。
在一方面,如圖4所示,防火墻系統(tǒng)300包括與應(yīng)用服務(wù)器100分開(kāi) 的一個(gè)或多個(gè)服務(wù)器310的堆疊,其呈現(xiàn)UI并執(zhí)行事務(wù)邏輯。這些防火墻 服務(wù)器310的目的是在負(fù)荷平衡系統(tǒng)305與應(yīng)用服務(wù)器100之間(或者, 在不存在任何負(fù)荷平衡功能的情況下,則是在網(wǎng)絡(luò)14與應(yīng)用服務(wù)器100之 間)中繼請(qǐng)求。對(duì)于它們中繼的各請(qǐng)求,各防火墻服務(wù)器310執(zhí)行以下步 驟
1 )記錄在從客戶機(jī)12接收的請(qǐng)求中的SID (或者客戶機(jī)散列);以及 2)將該請(qǐng)求轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器100。
在某些方面,在負(fù)荷平衡器與防火墻服務(wù)器之間,它們可以是一對(duì)一、 一對(duì)多、多對(duì)多的對(duì)應(yīng)。也就是, 一個(gè)負(fù)荷平衡服務(wù)器可以配置成尋址一 個(gè)或多個(gè)特定防火墻服務(wù)器,或者它可以尋址任何防火墻服務(wù)器。類似地, 在防火墻服務(wù)器與應(yīng)用服務(wù)器之間,也可以是一對(duì)一、 一對(duì)多、或者多對(duì) 多對(duì)應(yīng)。當(dāng)應(yīng)用服務(wù)器100響應(yīng)所接收到的客戶機(jī)請(qǐng)求時(shí),它通常為響應(yīng)添加
包含SID(或者帶有用戶ID或組織ID信息的客戶機(jī)散列)的響應(yīng)標(biāo)題。防 火墻服務(wù)器310接收該響應(yīng)消息,提取SID (或者客戶機(jī)散列),并比較在 該響應(yīng)中的SID(或者客戶機(jī)散列)中的信息與由客戶機(jī)最初發(fā)出的SID 中的信息。如果它們不同,防火墻服務(wù)器就知道存在某種錯(cuò)誤,并以錯(cuò)誤 代碼響應(yīng)于該客戶機(jī),而不是以錯(cuò)誤頁(yè)面響應(yīng)于該客戶機(jī)。它記錄此4普誤 并發(fā)出適當(dāng)警報(bào),例如,通過(guò)向系統(tǒng)管理員發(fā)送通知。如果信息匹配,則 防火墻服務(wù)器310可以從頁(yè)面體和/或從HTTP標(biāo)題中除去SID,并將響應(yīng) 轉(zhuǎn)發(fā)給請(qǐng)求的客戶機(jī)。
圖5圖示根據(jù)一種實(shí)施方式的示例性客戶機(jī)防火墻處理。在典型操作 中,客戶機(jī)系統(tǒng)通過(guò)向MTS 16發(fā)送注冊(cè)請(qǐng)求發(fā)起對(duì)話,該請(qǐng)求由應(yīng)用服務(wù) 器100接收。在響應(yīng)中,應(yīng)用服務(wù)器發(fā)送注冊(cè)響應(yīng)返回給請(qǐng)求的客戶機(jī)系 統(tǒng)12。在一方面,該響應(yīng)包4舌注冊(cè)頁(yè)面;當(dāng)注冊(cè)進(jìn)入時(shí),頁(yè)面"frontdoor.jsp', 總是用戶命中的第一頁(yè)。此頁(yè)面運(yùn)行(客戶機(jī)上的) 一個(gè)簡(jiǎn)單的注冊(cè)腳本, 以驗(yàn)證該客戶機(jī)支持確認(rèn)邏輯。這點(diǎn)是重要的,因?yàn)榭蛻魴C(jī)防火墻依賴于 客戶才幾側(cè)確認(rèn)邏輯處理。在一方面,在JavaScript中實(shí)現(xiàn)確認(rèn)邏輯,以及, 注冊(cè)腳本驗(yàn)證該客戶機(jī)支持JavaScript。如果客戶機(jī)不支持JavaScript(或者, 在其中實(shí)現(xiàn)防火墻的任何客戶機(jī)邏輯平臺(tái)),應(yīng)用程序仍能工作但不帶防火 墻。
在一方面,當(dāng)用戶注冊(cè)進(jìn)入時(shí),"frontdoor.jsp,,頁(yè)面設(shè)置SID cookie。 如果它是在SID過(guò)期之前(例如,15分鐘)的窗口內(nèi)請(qǐng)求的首頁(yè),服務(wù)中 的任何其它頁(yè)面可以設(shè)置SIDcookie。當(dāng)設(shè)置SID cookie時(shí),也就設(shè)置稱為 "用戶散列,,的另一 cookie。該cookie包含唯一地識(shí)別給定的用戶和組織 的字母數(shù)字串。
必須使用客戶機(jī)邏輯(諸如JavaScript)而不是HTTP cookie標(biāo)題,來(lái) 設(shè)置SID和用戶散列cookie。這使客戶機(jī)防火墻邏輯能夠在設(shè)置SID或用 戶散列cookie之前確認(rèn)該頁(yè)面確切打算供該客戶機(jī)使用。如果使用標(biāo)準(zhǔn)的 HTTP標(biāo)題設(shè)置cookie,則瀏覽器將在客戶機(jī)防火墻代碼運(yùn)行之前設(shè)置SID 和用戶散列cookie,而導(dǎo)致檢查無(wú)用。
回到圖5,在用戶注冊(cè)進(jìn)入系統(tǒng)之后,可以向系統(tǒng)發(fā)出請(qǐng)求或查詢。應(yīng) 用服務(wù)器100接收并處理該請(qǐng)求,并發(fā)送響應(yīng)消息返回給請(qǐng)求的客戶機(jī)。在一方面,對(duì)于發(fā)回給客戶機(jī)的各頁(yè)面,應(yīng)用服務(wù)器100包括用戶ID和組
織ID的散列,其用于為之產(chǎn)生頁(yè)面的用戶和組織。它還將基于客戶機(jī)的邏 輯(例如,JavaScript)包括入每一頁(yè)面。當(dāng)被客戶機(jī)接收到時(shí),客戶機(jī)邏 輯執(zhí)行并確認(rèn)為之產(chǎn)生頁(yè)面的用戶ID和組織ID與做出最初請(qǐng)求的用戶ID 和組織ID是相同的。在一方面,此邏輯對(duì)存〗諸在客戶才幾(例如,在SID和 /或用戶散列cookie中)的用戶ID及組織ID與隨頁(yè)面返回的ID進(jìn)行比較。 用于此客戶機(jī)側(cè)邏輯的JavaScript源代碼的示例如下
<script language="JavaScriptl .2" src="/js/session.js"〉</script> <script>
var hvch = needsClientHash ('sid一Client', '0000000cBXH00000000062', '65.118.120.94', 7servlet/servlet.ClientHashValidator ResponseRequestedURL=%2F0033000000DCGGg' );
</script>
下面提供用于功能"needsClientHash" 和其他相關(guān)JavaScript功能的 JavaScript源代^馬的示例
function putClientHash(name, value, domain, path){ document.cookie = name +'=' + value + ((domain) '; domain='+domain: 〃 ) + ((path) '; path='+path:'; path=/');
function getClientHash(name) { var dc = document.cookie; var prefix = name +'='; var begin = dc.indexOf(';'+prefix); if (begin -1){
begin=dc.indexOf(prefix》
if (begin !=0) return null;} else {
Begin += 2;
var end二document.cookie.indexOf(';',begin); if (end ==-1) { end = dc.length^
return unescape(dc.substring(begin+prefix,length, end));
function needsClientHash(hashName, hashValue, clientSrc, nextPage){ var clientHash = getClientHash(hashName);
var needsClientHash = clientHash =二 haseValue;
if (!needsClientHash){
var currLoc = unescape(window,location.href); var index = currLoc.indexOf(hash value, 0); needsClientHash = index > -1;
If(!needsClientHash){
window.location.href = nextPage + '&winLoc=' + window.location十'&c=' + clientHash + '&s=' + hashValue + '&cs=' + dientSrc;
return needsClientHash;
與服務(wù)器防火墻的實(shí)施方式類似,如果客戶機(jī)防火墻檢測(cè)到頁(yè)面被傳 送給錯(cuò)誤的用戶或組織,防火墻立即從應(yīng)用程序中注銷該用戶,并發(fā)出適 當(dāng)?shù)木瘓?bào)。
應(yīng)當(dāng)理解,現(xiàn)。例如,它可以使用Java或ActiveX cookie程序等。例如,如果實(shí)現(xiàn)成 ActiveX插件程序,發(fā)送給客戶機(jī)的各頁(yè)面可以包括對(duì)ActiveX插件程序的 調(diào)用,以執(zhí)行確認(rèn)邏輯。
本發(fā)明并不局限于所公開(kāi)的實(shí)施方式。相反,打算覆蓋對(duì)本領(lǐng)域技術(shù)人員 而言顯而易見(jiàn)的不同修改和類似裝置。因此,所附權(quán)利要求的范圍應(yīng)當(dāng)與 最寬解釋一致,以便包括所有這種修改和類似裝置。
權(quán)利要求
1.一種多租戶數(shù)據(jù)庫(kù)系統(tǒng),包括數(shù)據(jù)庫(kù)系統(tǒng),為多個(gè)租戶中的每一個(gè)存儲(chǔ)數(shù)據(jù);應(yīng)用服務(wù)器,與所述數(shù)據(jù)庫(kù)系統(tǒng)和網(wǎng)絡(luò)可通信地耦合,所述應(yīng)用服務(wù)器為所述多個(gè)租戶中的每一個(gè)提供對(duì)所述數(shù)據(jù)庫(kù)系統(tǒng)的網(wǎng)絡(luò)訪問(wèn);以及查詢計(jì)劃?rùn)z測(cè)模塊,對(duì)于查詢計(jì)劃輪詢所述數(shù)據(jù)庫(kù)系統(tǒng),并分析所述查詢計(jì)劃,以判斷查詢計(jì)劃是否可疑。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述查詢計(jì)劃?rùn)z測(cè)模塊防止可 疑查詢計(jì)劃的^U于。
3. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,如果查詢計(jì)劃可疑,則所述查 詢計(jì)劃?rùn)z測(cè)模塊產(chǎn)生警報(bào)。
4. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,對(duì)于每一個(gè)可疑查詢計(jì)劃,所 述查詢計(jì)劃?rùn)z測(cè)模塊判斷所述可疑查詢計(jì)劃是否歸入查詢計(jì)劃例外。
5. 根據(jù)權(quán)利要求4所述的系統(tǒng),其中,歸入查詢計(jì)劃例外的可疑查詢 計(jì)劃#皮4丸4亍。
6. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,如果查詢計(jì)劃可疑,則所述查 詢計(jì)劃?rùn)z測(cè)模塊記錄查詢計(jì)劃信息。
7. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述查詢計(jì)劃?rùn)z測(cè)模塊在生產(chǎn) 和開(kāi)發(fā)期間運(yùn)行。
8. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,分析所述查詢計(jì)劃以判斷查詢 計(jì)劃是否可疑包括判斷所述查詢計(jì)劃是否為至少下述之一在多租戶數(shù)據(jù) 庫(kù)系統(tǒng)中應(yīng)該從不出現(xiàn)的查詢計(jì)劃;或者在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中只在少凄史 鑒別過(guò)的情況下出現(xiàn)的查詢計(jì)劃。
9. 一種多租戶數(shù)據(jù)庫(kù)系統(tǒng),包括 數(shù)據(jù)庫(kù)系統(tǒng),為多個(gè)租戶存儲(chǔ)數(shù)據(jù);應(yīng)用服務(wù)器,與所述數(shù)據(jù)庫(kù)系統(tǒng)和網(wǎng)絡(luò)可通信地耦合,所述應(yīng)用服務(wù) 器為至少 一個(gè)客戶機(jī)系統(tǒng)提供對(duì)所述數(shù)據(jù)庫(kù)系統(tǒng)的網(wǎng)絡(luò)訪問(wèn);以及至少一個(gè)防火墻服務(wù)器,可通信地耦合在所迷應(yīng)用服務(wù)器與所述至少 一個(gè)客戶機(jī)系統(tǒng)之間,所述至少一個(gè)防火墻服務(wù)器可操作以 接收客戶機(jī)請(qǐng)求;從所述客戶機(jī)請(qǐng)求中提取用戶和組織信息; 轉(zhuǎn)發(fā)所述客戶機(jī)請(qǐng)求給所述應(yīng)用服務(wù)器;以及 比較包括在從所述應(yīng)用服務(wù)器接收到的響應(yīng)消息中的用戶和組織 信息與從所述客戶機(jī)請(qǐng)求中提取出的用戶和組織信息。
10. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,所述用戶和組織所述客戶機(jī)請(qǐng)求和所述響應(yīng)消息各自包括所述對(duì)話ID ( SID ) cookie和所述 串?dāng)?shù)據(jù)字段中的至少一個(gè)。
11. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,所述防火墻服務(wù) 器從包括作為所述響應(yīng)消息一部分的頁(yè)面體中除去所述用戶和組織信息的 部分,并將所述響應(yīng)消息轉(zhuǎn)發(fā)給所述客戶機(jī)系統(tǒng)。
12. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,當(dāng)所述響應(yīng)中的 所述用戶和組織信息與所提取的用戶和組織信息不匹配時(shí),所述防火墻服 務(wù)器發(fā)出警報(bào)。
13. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,當(dāng)所述響應(yīng)中的 所述用戶和組織信息與所提取的用戶和組織信息不匹配時(shí),所述防火墻服 務(wù)器響應(yīng)于所述客戶機(jī)請(qǐng)求生成并發(fā)送錯(cuò)誤代碼。
14. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,當(dāng)所述響應(yīng)中的 所述用戶和組織信息與所提取的用戶和組織信息不匹配時(shí),所述防火墻服 務(wù)器響應(yīng)于所述客戶機(jī)請(qǐng)求將所述客戶機(jī)系統(tǒng)從所述應(yīng)用服務(wù)器中注銷。
15. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,當(dāng)所述響應(yīng)中的 所述用戶和組織信息與所提取的用戶和組織信息不匹配時(shí),所述防火墻服 務(wù)器記錄錯(cuò)誤信息。
16. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)庫(kù)系統(tǒng),其中,所述防火墻服務(wù) 器使用所述用戶和組織信息的唯一 ID來(lái)跟蹤請(qǐng)求頁(yè)面的用戶的身份。
17. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)系統(tǒng),其中,所述防火墻服務(wù)器 提取包括在所述響應(yīng)消息中的所述用戶和組織信息。
18. 根據(jù)權(quán)利要求9所述的多租戶數(shù)據(jù)系統(tǒng),其中,所述防火墻服務(wù)器 從所述響應(yīng)消息的HTML標(biāo)題中提取所述用戶和組織信息。
19. 一種在為多個(gè)租戶存儲(chǔ)數(shù)據(jù)的多租戶數(shù)據(jù)庫(kù)系統(tǒng)中提供客戶機(jī)側(cè) 防火墻的方法,所述方法包括在所述數(shù)據(jù)庫(kù)系統(tǒng)處,響應(yīng)于從第一客戶機(jī)系統(tǒng)接收的注冊(cè)請(qǐng)求,以 包括用戶和組織信息以及第 一確認(rèn)邏輯的注冊(cè)響應(yīng)消息,響應(yīng)所述第 一客 戶機(jī)系統(tǒng),其中,所述數(shù)據(jù)庫(kù)系統(tǒng)包括可通信地耦合所述數(shù)據(jù)庫(kù)系統(tǒng)與網(wǎng) 絡(luò)的應(yīng)用服務(wù)器,以及其中,所述應(yīng)用服務(wù)器為至少一個(gè)客戶機(jī)系統(tǒng)提供對(duì)所述數(shù)據(jù)庫(kù)系統(tǒng)的網(wǎng)絡(luò)訪問(wèn);在所述第一客戶機(jī)系統(tǒng)處,執(zhí)行所述第一確認(rèn)邏輯,以設(shè)置所述用戶 和組織信息;在所述數(shù)據(jù)庫(kù)系統(tǒng)處,響應(yīng)于從所述第一客戶機(jī)系統(tǒng)接收的后續(xù)請(qǐng)求, 通過(guò)包括用戶和組織信息以及第二確認(rèn)邏輯的響應(yīng)消息來(lái)響應(yīng)所述第一客 戶才幾系統(tǒng);以及在所述第一客戶機(jī)系統(tǒng)處,執(zhí)行所述第二確認(rèn)邏輯,以確認(rèn)在所述響 應(yīng)消息中所接收的所述用戶和組織信息與在所述第 一客戶機(jī)系統(tǒng)處設(shè)置的 所述用戶和組織信息匹配。
20. 根據(jù)權(quán)利要求19所述的方法,其中,所述用戶和組織信息包括在 對(duì)話ID (SID) cookie和串?dāng)?shù)據(jù)字段的至少一個(gè)之中,以及其中,所述注冊(cè) 響應(yīng)和所述響應(yīng)消息各自包括所述對(duì)話ID ( SID) cookie和所述串?dāng)?shù)據(jù)字賴: 中的至少一個(gè)。
21. 根據(jù)權(quán)利要求19所述的方法,其中,如果在所述響應(yīng)消息中所接 收的用戶和組織信息與在所述第一客戶機(jī)系統(tǒng)處設(shè)置的用戶和組織信息不 匹配,則自動(dòng)將所述用戶從所述應(yīng)用服務(wù)器中注銷。
22. 根據(jù)權(quán)利要求19所述的方法,其中,如果在所述響應(yīng)消息中所接 收的所述用戶和組織信息與在所述第 一 客戶機(jī)系統(tǒng)處設(shè)置的所述用戶和組 織信息不匹配,則所述第 一客戶機(jī)系統(tǒng)向系統(tǒng)管理員發(fā)送警報(bào)。
23. —種用于在多租戶環(huán)境下保護(hù)客戶數(shù)據(jù)的方法,包括監(jiān)控多租戶數(shù)據(jù)庫(kù)系統(tǒng)的查詢計(jì)劃,以判斷是否有查詢計(jì)劃可能為在 多租戶數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)該從不出現(xiàn)的查詢計(jì)劃、或者在多租戶數(shù)據(jù)庫(kù)系統(tǒng) 中只在少數(shù)鑒別過(guò)的情況下出現(xiàn)的查詢計(jì)劃中的至少一個(gè);以及如果查詢計(jì)劃被判斷為在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)該從不出現(xiàn)的查詢計(jì) 劃、或者在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中只在少數(shù)鑒別過(guò)的情況下出現(xiàn)的查詢計(jì)劃 中的至少 一個(gè),則采取行動(dòng)以在所述多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)。
24. 根據(jù)權(quán)利要求23所述的方法,其中,如果查詢計(jì)劃被判斷為在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)該從不出現(xiàn)的查詢計(jì)劃、或者在多考且戶數(shù)據(jù)庫(kù)系統(tǒng)中 只在少數(shù)鑒別過(guò)的情況下出現(xiàn)的查詢計(jì)劃中的至少 一 個(gè),則采取行動(dòng)以在所述多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)包括發(fā)出警報(bào)、記錄審核消息、廢除所述查詢計(jì)劃、以及延遲所述查詢計(jì) 劃的執(zhí)行中的至少一個(gè)。
25. 根據(jù)權(quán)利要求23所述的方法,還包括判斷特殊查詢計(jì)劃是否為查詢計(jì)劃的例外類的成員,該特殊查詢計(jì)劃 已被確定為在多租戶數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)該從不出現(xiàn)的查詢計(jì)劃、或者在多租 戶數(shù)據(jù)庫(kù)系統(tǒng)中只在少數(shù)鑒別過(guò)的情況下出現(xiàn)的查詢計(jì)劃中的至少 一個(gè); 以及當(dāng)發(fā)現(xiàn)所述查詢計(jì)劃是查詢計(jì)劃的例外類的成員時(shí),允許執(zhí)行所述查 詢計(jì)劃而不發(fā)出警報(bào)。
26. —種用于在多租戶環(huán)境下傳輸用于保護(hù)客戶數(shù)據(jù)的代碼的方法,包括傳輸代碼,當(dāng)執(zhí)行所述代碼時(shí)導(dǎo)致一個(gè)或多個(gè)處理器監(jiān)控多租戶數(shù)據(jù) 庫(kù)系統(tǒng)的查詢計(jì)劃,以判斷是否有查詢計(jì)劃可能為可疑的;以及傳輸代碼,當(dāng)執(zhí)行所述代碼時(shí)如果查詢計(jì)劃被確定為可疑則引起一個(gè)或多個(gè)處理器采取行動(dòng),以在多租戶環(huán)境中保護(hù)客戶數(shù)據(jù)。
全文摘要
利用查詢計(jì)劃?rùn)z測(cè)模塊不斷輪詢數(shù)據(jù)庫(kù)系統(tǒng),以找出可疑查詢計(jì)劃并發(fā)出警報(bào),提高了在多租戶數(shù)據(jù)庫(kù)網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)安全。利用位于應(yīng)用服務(wù)器與客戶機(jī)系統(tǒng)之間的防火墻系統(tǒng),其記錄關(guān)于所接收的各客戶機(jī)請(qǐng)求的用戶和組織信息,比較該信息與包括在來(lái)自應(yīng)用服務(wù)器的響應(yīng)中的信息,并驗(yàn)證該響應(yīng)被發(fā)送給適當(dāng)?shù)挠脩?,也能提高安全。利用帶有在客戶機(jī)系統(tǒng)上執(zhí)行的邏輯的客戶機(jī)側(cè)防火墻系統(tǒng),通過(guò)比較存儲(chǔ)在客戶機(jī)處的用戶和組織ID信息與響應(yīng)中的類似信息,客戶機(jī)側(cè)防火墻系統(tǒng)驗(yàn)證來(lái)自應(yīng)用服務(wù)器的響應(yīng)被發(fā)送給適當(dāng)?shù)挠脩粝到y(tǒng),也能提高安全。
文檔編號(hào)G06F17/30GK101336433SQ200680051776
公開(kāi)日2008年12月31日 申請(qǐng)日期2006年11月30日 優(yōu)先權(quán)日2005年12月2日
發(fā)明者保羅·納卡達(dá), 克雷格·韋斯曼, 埃里克·陳, 戴夫·莫倫霍夫, 托德·麥金農(nóng) 申請(qǐng)人:易享信息技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1