專利名稱:用分離的服務(wù)器支持專用存取控制的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制用戶對(duì)應(yīng)用程序操作的存取,尤其涉及用不同于應(yīng)用程序的服務(wù)器控制用戶對(duì)應(yīng)用程序的操作的存取。
背景技術(shù):
計(jì)算機(jī)進(jìn)程交互的客戶-服務(wù)器模式被廣泛應(yīng)用。根據(jù)客戶-服務(wù)器模式,客戶進(jìn)程將包括請(qǐng)求的消息發(fā)送至服務(wù)器進(jìn)程,并且服務(wù)器進(jìn)程通過(guò)提供服務(wù)做出響應(yīng)。服務(wù)器進(jìn)程也可將具有響應(yīng)的消息返回至客戶進(jìn)程??蛻暨M(jìn)程和服務(wù)器進(jìn)程經(jīng)常在不同的計(jì)算機(jī)設(shè)備(所謂的主機(jī))上執(zhí)行,并且使用一個(gè)或多個(gè)網(wǎng)絡(luò)通信協(xié)議通過(guò)網(wǎng)絡(luò)進(jìn)行通信。
術(shù)語(yǔ)“服務(wù)器”通常指的是提供服務(wù)的進(jìn)程,或在其上運(yùn)行該進(jìn)程的主計(jì)算機(jī)。相似地,術(shù)語(yǔ)“客戶”通常指的是作出請(qǐng)求的進(jìn)程,或在其上運(yùn)行該進(jìn)程的主計(jì)算機(jī)。除非在上下文中另有說(shuō)明,在此中所用的術(shù)語(yǔ)“客戶”和“服務(wù)器”指的是進(jìn)程,而不是主計(jì)算機(jī)。
響應(yīng)于來(lái)自數(shù)據(jù)庫(kù)客戶的請(qǐng)求,數(shù)據(jù)庫(kù)服務(wù)器提供數(shù)據(jù)庫(kù)服務(wù)。例如,數(shù)據(jù)庫(kù)服務(wù)器將在請(qǐng)求中接收到的數(shù)據(jù)寫入在由數(shù)據(jù)庫(kù)服務(wù)器管理的特定數(shù)據(jù)庫(kù)中的一個(gè)或多個(gè)數(shù)據(jù)容器;或者,從一個(gè)或多個(gè)滿足請(qǐng)求中指定的條件的那些容器取回?cái)?shù)據(jù);或者,兩者全有。在許多情況下,數(shù)據(jù)庫(kù)客戶是不同于數(shù)據(jù)庫(kù)服務(wù)器的中間層應(yīng)用程序,該應(yīng)用程序?qū)σ粋€(gè)或多個(gè)應(yīng)用程序用戶執(zhí)行諸如會(huì)計(jì)服務(wù)的其它服務(wù)。應(yīng)用程序本身可被配置用于客戶-服務(wù)器操作,由此應(yīng)用程序用戶操作作出應(yīng)用程序請(qǐng)求至應(yīng)用程序服務(wù)器的應(yīng)用程序客戶。
不是數(shù)據(jù)庫(kù)服務(wù)器的所有用戶都被授權(quán)存取在由數(shù)據(jù)庫(kù)服務(wù)器管理的所有數(shù)據(jù)庫(kù)對(duì)象中的所有數(shù)據(jù)。因此,數(shù)據(jù)庫(kù)服務(wù)器通常執(zhí)行控制數(shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的存取的存取控制。已知有多種存取控制機(jī)制例如,在Murthy中描述的統(tǒng)一存取控制機(jī)制提供對(duì)數(shù)據(jù)內(nèi)容的存取控制,該數(shù)據(jù)內(nèi)容類似將被組織在存儲(chǔ)容器的層次中的數(shù)據(jù)庫(kù)用戶,或者類似將被組織在具有限定列的表格的相關(guān)數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)用戶,或者兩者均有。
存取控制經(jīng)常作為執(zhí)行數(shù)據(jù)庫(kù)操作的特權(quán),其帶有一組對(duì)于在數(shù)據(jù)庫(kù)中的多個(gè)數(shù)據(jù)項(xiàng)中的特定數(shù)據(jù)項(xiàng)或組的與數(shù)據(jù)庫(kù)的各用戶相關(guān)的一個(gè)或多個(gè)特權(quán)。例如,限定基本特權(quán)用于執(zhí)行基本數(shù)據(jù)庫(kù)操作,諸如讀取、插入、刪除可駐留在諸如表格的數(shù)據(jù)庫(kù)對(duì)象中的數(shù)據(jù)項(xiàng)的數(shù)據(jù)的操作,或創(chuàng)建、修改或刪除數(shù)據(jù)庫(kù)對(duì)象自身的操作。
執(zhí)行基本數(shù)據(jù)庫(kù)操作的特權(quán)與數(shù)據(jù)庫(kù)的若干層(level)的特定層相關(guān)。數(shù)據(jù)庫(kù)的層包括,例如,數(shù)據(jù)項(xiàng)層、若干數(shù)據(jù)項(xiàng)的數(shù)據(jù)庫(kù)對(duì)象層、若干數(shù)據(jù)庫(kù)對(duì)象的層次的節(jié)點(diǎn)層、以及數(shù)據(jù)庫(kù)對(duì)象的若干派生節(jié)點(diǎn)的親代節(jié)點(diǎn)層。當(dāng)特權(quán)與特定層相關(guān)時(shí),特權(quán)可在該層應(yīng)用于所有的項(xiàng)。
在一些數(shù)據(jù)庫(kù)管理系統(tǒng)中,可限定特權(quán)的層次,在層次中的各節(jié)點(diǎn)表示執(zhí)行在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)層上的基本操作的特定組合的特權(quán)。為了支持該層次的特權(quán),在一些數(shù)據(jù)庫(kù)管理系統(tǒng)中的數(shù)據(jù)庫(kù)服務(wù)器提供基本結(jié)構(gòu)以描述特權(quán),使用戶和數(shù)據(jù)項(xiàng)與特權(quán)相關(guān),并有效儲(chǔ)存和取回在高速存儲(chǔ)器緩沖中關(guān)于特權(quán)的信息以快速確定數(shù)據(jù)庫(kù)用戶是否可執(zhí)行在請(qǐng)求的數(shù)據(jù)項(xiàng)或數(shù)據(jù)庫(kù)對(duì)象上的請(qǐng)求的數(shù)據(jù)庫(kù)操作。
根據(jù)執(zhí)行數(shù)據(jù)庫(kù)操作的特權(quán)支持對(duì)數(shù)據(jù)庫(kù)的存取控制的基本結(jié)構(gòu)在數(shù)據(jù)庫(kù)操作的粒度下提供存取控制。然而,當(dāng)需要根據(jù)在使用數(shù)據(jù)庫(kù)的應(yīng)用中限定的操作控制存取時(shí),在粒度的數(shù)據(jù)庫(kù)操作層提供存取控制的能力不是特別有用。這樣的操作在此中被稱為“專用(application-specific)”操作。
例如,在管理企業(yè)的定購(gòu)單的應(yīng)用程序中,專用操作包括創(chuàng)建新的定購(gòu)單,批準(zhǔn)定購(gòu)單,發(fā)行定購(gòu)單以進(jìn)行購(gòu)買,使發(fā)票與特定的定購(gòu)單相關(guān),確認(rèn)收到已發(fā)送的定購(gòu)單,以及通過(guò)支付相關(guān)的發(fā)票清除定購(gòu)單。如果將特權(quán)給予特定應(yīng)用程序用戶以執(zhí)行這些專用操作中的一些,而不是其它的,隨后必須在粒度的專用操作層提供存取控制。由于存取控制的粒度的該層不通過(guò)數(shù)據(jù)庫(kù)服務(wù)器提供,使用專用操作的特權(quán)的每個(gè)應(yīng)用程序的開(kāi)發(fā)者必須設(shè)計(jì)并執(zhí)行管理用于不同用戶的不同特權(quán)的存取控制軟件。
存在若干為每個(gè)應(yīng)用程序開(kāi)發(fā)存取控制軟件方面的不足。一個(gè)不足在于由于開(kāi)發(fā)資源被消耗以產(chǎn)生執(zhí)行存取控制的軟件,開(kāi)發(fā)應(yīng)用程序的成本增加。存取控制越復(fù)雜,開(kāi)發(fā)成本越高。相反地,開(kāi)發(fā)存取控制上的花費(fèi)越少,執(zhí)行的存取控制越簡(jiǎn)單。另一不足在于為新應(yīng)用程序開(kāi)發(fā)存取控制通常不如經(jīng)過(guò)多年用于一些系統(tǒng)和服務(wù)器上的已經(jīng)開(kāi)發(fā)的存取控制有效。例如,一些數(shù)據(jù)庫(kù)服務(wù)器隨使用最小計(jì)算資源的存取控制而發(fā)展,其包括使用指示用戶特權(quán)的數(shù)據(jù)的有效高速緩存。
此外,具有獨(dú)立開(kāi)發(fā)的存取控制機(jī)制的多個(gè)應(yīng)用程序的管理員可能不得不對(duì)付用于表示特權(quán)的層次和表示具有那些特權(quán)的應(yīng)用程序用戶和數(shù)據(jù)項(xiàng)的關(guān)系的不同接口。如果可跨過(guò)多個(gè)應(yīng)用程序得到相同存取控制基本結(jié)構(gòu),那些多個(gè)應(yīng)用程序的管理員可更容易地進(jìn)入與特權(quán)和相關(guān)用戶和數(shù)據(jù)項(xiàng)相關(guān)的信息,具有較低濃度和較少錯(cuò)誤。
根據(jù)上述描述,明顯需要可應(yīng)用到數(shù)據(jù)庫(kù)應(yīng)用程序的數(shù)據(jù)庫(kù)服務(wù)器的有效存取控制機(jī)制。通常地,需要使在分離的服務(wù)器中執(zhí)行的復(fù)雜且有效的存取控制機(jī)制可應(yīng)用到任何應(yīng)用程序中。
可以繼續(xù)本節(jié)中所描述的方法,但不是已被構(gòu)思和繼續(xù)的必要的方法。因此,除非在此另有說(shuō)明,在此部分中描述的方法不能僅因?yàn)樵诖吮尘凹夹g(shù)部分中出現(xiàn)這些方法,就認(rèn)為是本申請(qǐng)的權(quán)利要求中的現(xiàn)有技術(shù)。
本發(fā)明在附圖中以舉例而不是限制的方式加以闡明,附圖中相同的附圖標(biāo)記指相同的元件,其中圖1是示出執(zhí)行專用操作的特權(quán)的典型層次的框圖;圖2是示出根據(jù)實(shí)施例的用于支持用分離的數(shù)據(jù)庫(kù)服務(wù)器在專用操作上的存取控制的系統(tǒng)的框圖;圖3是示出根據(jù)實(shí)施例的用于支持用分離的服務(wù)器在專用操作上的存取控制的方法的實(shí)施例的流程圖;以及圖4是示出在其上可執(zhí)行本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的框圖。
具體實(shí)施例方式
本發(fā)明描述了一種用于支持用分離的數(shù)據(jù)庫(kù)服務(wù)器在專用操作上的存取控制的方法和裝置。在下面的描述中,出于解釋的目的,許多具體的細(xì)節(jié)被闡明以提供對(duì)本發(fā)明的徹底理解。然而,顯而易見(jiàn),本發(fā)明可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)施。在其它實(shí)例中,已知的結(jié)構(gòu)和裝置以框圖的形式示出,以避免對(duì)本發(fā)明造成不必要的混淆。
在數(shù)據(jù)庫(kù)服務(wù)器和作為數(shù)據(jù)庫(kù)客戶的應(yīng)用程序的下文中將描述特定實(shí)施例。在上下文中,應(yīng)用程序使用數(shù)據(jù)庫(kù)服務(wù)器不僅存儲(chǔ)用于應(yīng)用程序的數(shù)據(jù),而且支持操作的存取控制,該操作不是數(shù)據(jù)庫(kù)操作,而是對(duì)應(yīng)用程序特定的操作。本發(fā)明的實(shí)施例不限于本文,但是可包括依靠任何分離的服務(wù)器以支持在專用操作上的存取控制的任何應(yīng)用程序。盡管應(yīng)用程序和服務(wù)器是單獨(dú)的進(jìn)程,在一些實(shí)施例中兩者可在同一臺(tái)計(jì)算機(jī)主機(jī)上執(zhí)行。
根據(jù)一實(shí)施例,專用操作的存取控制通過(guò)將描述用于執(zhí)行第一組專用操作的特權(quán)的第一層次的數(shù)據(jù)發(fā)送到服務(wù)器的應(yīng)用程序來(lái)實(shí)現(xiàn)。該應(yīng)用程序還將使應(yīng)用程序的第一用戶和在特權(quán)的第一層次中的特權(quán)相關(guān)的數(shù)據(jù)發(fā)送到服務(wù)器。為了確定特定用戶是否被允許執(zhí)行特定專用操作,該應(yīng)用程序?qū)⒄?qǐng)求發(fā)送到服務(wù)器。該請(qǐng)求指示特定用戶和特定專用操作。響應(yīng)于接收請(qǐng)求,根據(jù)先前從應(yīng)用程序接收的數(shù)據(jù),服務(wù)器確定特定用戶是否可使應(yīng)用程序執(zhí)行特定專用操作。將響應(yīng)發(fā)送到應(yīng)用。該響應(yīng)指示特定用戶是否可使應(yīng)用程序執(zhí)行特定專用操作。
在這些技術(shù)的一些實(shí)施例中,由應(yīng)用程序發(fā)送到服務(wù)器的數(shù)據(jù)使應(yīng)用程序的第一用戶與用于在服務(wù)器中儲(chǔ)存的特定類型數(shù)據(jù)項(xiàng)的第一層次中的特權(quán)相關(guān)。在一些實(shí)施例中,應(yīng)用程序可向服務(wù)器提供若干不同用戶、或若干不同數(shù)據(jù)項(xiàng)、或兩者的特權(quán)信息。
存取控制通??杀硎緸閳?zhí)行操作的特權(quán)層次。層次是眾所周知的數(shù)學(xué)結(jié)構(gòu)。通常地,層次由在多層的節(jié)點(diǎn)組成。處于每個(gè)層的節(jié)點(diǎn)各與在不同層的一個(gè)或多個(gè)節(jié)點(diǎn)相連接。在頂層以下層的每個(gè)節(jié)點(diǎn)是上一層的一個(gè)或多個(gè)親代節(jié)點(diǎn)的子節(jié)點(diǎn)。在樹(shù)形層次中,每個(gè)子節(jié)點(diǎn)只具有一個(gè)親代節(jié)點(diǎn),但是親代節(jié)點(diǎn)可具有多個(gè)子節(jié)點(diǎn)。在樹(shù)形層次中,沒(méi)有與之相連接的親代節(jié)點(diǎn)的節(jié)點(diǎn)是根節(jié)點(diǎn),并且沒(méi)有與之相連接的子節(jié)點(diǎn)的節(jié)點(diǎn)是葉節(jié)點(diǎn)。樹(shù)形層次典型地具有單個(gè)根節(jié)點(diǎn)。樹(shù)形層次可用于描述包括一個(gè)或多個(gè)子特權(quán)的親代特權(quán)。
在特權(quán)的層次中,每個(gè)葉節(jié)點(diǎn)與執(zhí)行一個(gè)其存取將被控制的專用操作的特權(quán)相對(duì)應(yīng)。執(zhí)行多于一個(gè)專用操作的特權(quán)與在對(duì)應(yīng)于多于一個(gè)專用操作的葉節(jié)點(diǎn)的層次中的先輩節(jié)點(diǎn)相對(duì)應(yīng)。
圖1是示出執(zhí)行用于管理企業(yè)的定購(gòu)單(PO)的應(yīng)用程序的專用操作的特權(quán)的典型層次100的框圖。在典型層次100中,每個(gè)節(jié)點(diǎn)110對(duì)應(yīng)于執(zhí)行與定購(gòu)單(PO)相關(guān)的一個(gè)或多個(gè)專用操作的特權(quán)。如果有,省略號(hào)111表示代表附加特權(quán)的附加節(jié)點(diǎn)。在其它實(shí)施例中,特權(quán)的層次在更多或更少層可具有更多或更少的節(jié)點(diǎn)。
在層次100中的每個(gè)葉節(jié)點(diǎn)與執(zhí)行其存取將被控制的專用操作中的一個(gè)的每個(gè)特權(quán)相對(duì)應(yīng)。在所描述的實(shí)施例中,表格1中列出用于單一專用操作的特權(quán)和對(duì)應(yīng)葉節(jié)點(diǎn)。經(jīng)應(yīng)用程序的管理員的判斷,可將任何這些特權(quán)給予任何應(yīng)用程序的用戶。
表1.特權(quán)的實(shí)例層次
層次100還包括表示多于一個(gè)專用操作的特權(quán)的親代節(jié)點(diǎn)。在親代節(jié)點(diǎn)110c處稱為Approve_PO的特權(quán)包括在節(jié)點(diǎn)110g、110h、110i處分別批準(zhǔn)服務(wù)、設(shè)備、和物資的特權(quán)。在親代節(jié)點(diǎn)110e處稱為Accept_Delivery的特權(quán)包括在節(jié)點(diǎn)110j、110k、110l處分別接受遞送的服務(wù)、設(shè)備、和物資的特權(quán)。在該親代節(jié)點(diǎn)處的特權(quán)可被給予諸如部門領(lǐng)導(dǎo)的應(yīng)用程序的特定管理用戶。在節(jié)點(diǎn)110a處PO_ALL的特權(quán)包括在節(jié)點(diǎn)110b、110c、110d、110e、110f處分別產(chǎn)生PO、比準(zhǔn)PO、作出帶有批準(zhǔn)PO的購(gòu)買、接受PO中購(gòu)買的遞送、以及為在PO中遞送的購(gòu)買付款的特權(quán)。PO_ALL的特權(quán)包括執(zhí)行關(guān)于定購(gòu)單的所有專用操作的特權(quán)。
結(jié)構(gòu)概述圖2是示出根據(jù)實(shí)施例的用于支持用分離的數(shù)據(jù)庫(kù)服務(wù)器在專用操作上的存取控制的系統(tǒng)200的框圖。系統(tǒng)200包括應(yīng)用程序220、應(yīng)用程序客戶210、以及數(shù)據(jù)庫(kù)服務(wù)器230。響應(yīng)于來(lái)自一個(gè)或多個(gè)應(yīng)用程序客戶210的一個(gè)或多個(gè)命令,應(yīng)用程序220執(zhí)行一個(gè)或多個(gè)專用操作。
數(shù)據(jù)庫(kù)服務(wù)器230管理用于應(yīng)用程序220的一個(gè)或多個(gè)數(shù)據(jù)庫(kù)對(duì)象的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)服務(wù)器230包括永久存儲(chǔ)器240和在數(shù)據(jù)庫(kù)服務(wù)器230的快速但不穩(wěn)定的存儲(chǔ)器中的高速緩存232。值得注意的是數(shù)據(jù)庫(kù)服務(wù)器230是進(jìn)程。永久存儲(chǔ)器240和高速緩存232是分配給數(shù)據(jù)庫(kù)服務(wù)器進(jìn)程230的主機(jī)永久存儲(chǔ)器和主機(jī)存儲(chǔ)器的部分。結(jié)果,使用主機(jī)的永久存儲(chǔ)器的不同部分和主機(jī)的存儲(chǔ)器的不同部分或者在不同時(shí)間使用主機(jī)的存儲(chǔ)器的相同部分,應(yīng)用程序220和數(shù)據(jù)庫(kù)服務(wù)器230可在相同主機(jī)上執(zhí)行。在數(shù)據(jù)庫(kù)服務(wù)器永久存儲(chǔ)器240中,數(shù)據(jù)庫(kù)服務(wù)器230儲(chǔ)存一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)242、244以及在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)對(duì)象(沒(méi)有顯示)中的一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)。數(shù)據(jù)結(jié)構(gòu)242保存表示用于應(yīng)用程序220的一個(gè)或多個(gè)特權(quán)層次的數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)244保存將應(yīng)用程序220的一個(gè)或多個(gè)用戶以及一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)與在用于應(yīng)用程序220的數(shù)據(jù)結(jié)構(gòu)242中表示的的一個(gè)或多個(gè)特權(quán)層次中的一個(gè)或多個(gè)特權(quán)相關(guān)的數(shù)據(jù)。盡管在圖2中示出兩種數(shù)據(jù)結(jié)構(gòu),在其它實(shí)施例中數(shù)據(jù)結(jié)構(gòu)242、244中的數(shù)據(jù)可儲(chǔ)存在較多或較少的數(shù)據(jù)結(jié)構(gòu)中。
功能概述根據(jù)所述的實(shí)施例,對(duì)客戶而言,在應(yīng)用程序220執(zhí)行其存取被控制的專用操作之前,應(yīng)用程序220將請(qǐng)求發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器230以確定與客戶相關(guān)的用戶是否具有使應(yīng)用程序220執(zhí)行在特定數(shù)據(jù)項(xiàng)上的專用操作的特權(quán)。根據(jù)儲(chǔ)存在數(shù)據(jù)結(jié)構(gòu)242、244中的請(qǐng)求和信息,數(shù)據(jù)庫(kù)服務(wù)器230將響應(yīng)發(fā)送回應(yīng)用程序220。該響應(yīng)包括指示用戶是否具有使應(yīng)用220執(zhí)行在特定數(shù)據(jù)項(xiàng)上的專用操作的特權(quán)的數(shù)據(jù)。
應(yīng)用程序220的管理員提供在數(shù)據(jù)結(jié)構(gòu)242、244中的信息。在所示的實(shí)施例中,應(yīng)用程序管理員使用可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)文檔儲(chǔ)存描述層次的數(shù)據(jù)。XML是由萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium,W3C)頒布的標(biāo)準(zhǔn)定義的用于描述結(jié)構(gòu)數(shù)據(jù)的眾所周知且廣泛使用的標(biāo)記語(yǔ)言,并且允許數(shù)據(jù)元素的任意樹(shù)形層次。隨后應(yīng)用程序管理員與由數(shù)據(jù)庫(kù)服務(wù)器230提供的接口進(jìn)行交互。該接口允許應(yīng)用程序管理員表示描述應(yīng)用于數(shù)據(jù)項(xiàng)的每個(gè)數(shù)據(jù)項(xiàng)或組的層次的XML文檔,并允許表示在每個(gè)層次中應(yīng)用于應(yīng)用程序220的每個(gè)用戶的一個(gè)或多個(gè)特權(quán)。
在一些實(shí)施例中,對(duì)于一個(gè)應(yīng)用程序的若干特權(quán)層次的每一個(gè)與專用操作所操作的數(shù)據(jù)項(xiàng)的相應(yīng)類型相關(guān)。例如,特權(quán)層次100與表示企業(yè)定購(gòu)單的數(shù)據(jù)項(xiàng)相關(guān),但是不與表示相同企業(yè)的人員記錄的數(shù)據(jù)項(xiàng)相關(guān)。在人員記錄操作的特權(quán)在不同于特權(quán)層次100的第二特權(quán)層次(沒(méi)有顯示)中表示。在該實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)242中的數(shù)據(jù)使每個(gè)特權(quán)層次與被那些特權(quán)允許的操作所操作的一個(gè)或多個(gè)類型數(shù)據(jù)項(xiàng)相關(guān)。
用于支持專用操作上的存取控制的方法為了描述該方法,描述典型的實(shí)施例。在典型實(shí)施例中,應(yīng)用程序管理員生成描述用于在定購(gòu)單對(duì)象上的專用操作的特權(quán)層次的可擴(kuò)展標(biāo)記語(yǔ)言(XML)文檔。在其它實(shí)施例中,其它結(jié)構(gòu)數(shù)據(jù)格式可用于表示特權(quán)的層次。
在典型的實(shí)施例中,每個(gè)XML元素對(duì)應(yīng)于代表在特權(quán)層次中的特權(quán)的節(jié)點(diǎn)。表格2示出描述在圖1中所示的典型層次100的典型XML文檔部分。
表2.描述特權(quán)的典型層次的XML文檔部分
為了描述方便,假設(shè)具有在表格2中列出的行的XML文檔儲(chǔ)存在應(yīng)用程序220的主計(jì)算機(jī)上名為POprivileges.xml的文件中。每個(gè)XML元素具有一個(gè)名稱。XML元素的開(kāi)始由將XML元素的名稱括在一起的符號(hào)“<”“>”表示。XML元素的結(jié)束由將XML元素的名稱括在一起的符號(hào)“</”“>”表示。母元素的所有子元素都包括在表示母元素的開(kāi)始和結(jié)束的符號(hào)之間。當(dāng)元素沒(méi)有子元素時(shí),可選地,可以通過(guò)由符號(hào)“<”“/>”括在一起的元素名稱表示。
在表2的第1行和第17行描述的省略號(hào)表示在先于或后于第2行至第16行的XML文檔中的XML行。XML行2-16表示對(duì)應(yīng)于PO_ALL特權(quán)的名為“PO_ALL”的XML元素。PO_ALL元素包括五個(gè)子元素在第3行中的Generate_PO;在第4-8行中的Approve_PO;在第9行中的Purchase;在第10-14行中的Accept_Delivery;和在第15行中的Pay_under_PO。在第4-8行中的Approve_PO包括三個(gè)子元素在第5行中的Approve_Services;在第6行中的Approve_Equipment;和在第7行中的Approve_Supplies。在第10-14行中的Accept_Delivery包括三個(gè)子元素在第11行中的Accept_Services;在第12行中的Accept_Equipment;和在第13行中的Accept_Supplies。由此,具有在表2中描述的部分的XML文檔描述在圖1中所描述的定購(gòu)單操作的特權(quán)層次110。
圖3是示出根據(jù)實(shí)施例的用于支持用分離的服務(wù)器在專用操作上的存取控制的方法300的實(shí)施例的流程圖。盡管在圖3中示出步驟的特定次序,在其它實(shí)施例中,步驟可按不同次序執(zhí)行或可在時(shí)間上重疊。例如步驟310和320可在時(shí)間上重疊。
在步驟310中,服務(wù)器接收表示用于執(zhí)行在多種類型數(shù)據(jù)項(xiàng)上的專用操作的特權(quán)層次的數(shù)據(jù)??墒褂萌魏斡糜诮邮仗貦?quán)層次的方法。例如,在步驟310中,應(yīng)用程序管理員形成具有表格2所示的行的XML文檔,將文檔儲(chǔ)存在文件POprivileges.xml中,并且利用數(shù)據(jù)庫(kù)服務(wù)器存取控制接口表示應(yīng)該由數(shù)據(jù)庫(kù)服務(wù)器使用在文件POprivileges.xml中的特權(quán)的層次支持的專用存取控制。在一些實(shí)施例中,數(shù)據(jù)庫(kù)服務(wù)器存取控制接口為諸如技術(shù)領(lǐng)域中眾所周知的超文本標(biāo)識(shí)語(yǔ)言(HyperText Markup Language,HTML)頁(yè)的圖形用戶接口,其提示用戶輸入特定專用存取控制。在一些實(shí)施例中,數(shù)據(jù)庫(kù)服務(wù)器存取控制接口為在技術(shù)領(lǐng)域中眾所周知的應(yīng)用編程接口(Application Programming Interface,API),其包括程序和參數(shù)的名稱與類型,調(diào)用該程序和參數(shù)以執(zhí)行數(shù)據(jù)庫(kù)服務(wù)器存取控制功能。在其它實(shí)施例中,采用到服務(wù)器的其他接口。
在一些實(shí)施例中,為相同應(yīng)用程序接收多于一個(gè)特權(quán)層次。例如,如果應(yīng)用程序?yàn)槠髽I(yè)系統(tǒng),該應(yīng)用程序可不但包括用于定購(gòu)單系統(tǒng)的特權(quán)層次,而且包括諸如人力資源系統(tǒng)、設(shè)備管理系統(tǒng)、產(chǎn)品制造跟蹤系統(tǒng)、和批發(fā)銷售系統(tǒng)的其它系統(tǒng)的特權(quán)層次。應(yīng)用到不同系統(tǒng)的層次通常指的是在數(shù)據(jù)庫(kù)中由應(yīng)用程序儲(chǔ)存的不同類型數(shù)據(jù)項(xiàng)上的專用操作。例如,在圖1中示出的特權(quán)層次指的是在表格1中列出的在數(shù)據(jù)庫(kù)中定購(gòu)單數(shù)據(jù)庫(kù)對(duì)象上操作的操作,而人力資源的特權(quán)層次指的是在數(shù)據(jù)庫(kù)中個(gè)人數(shù)據(jù)庫(kù)對(duì)象上的操作。
在帶有多于一個(gè)特權(quán)層次的一些實(shí)施例中,在步驟310中,每個(gè)特權(quán)層次與一個(gè)類型的數(shù)據(jù)項(xiàng)相關(guān),并且該類型的數(shù)據(jù)項(xiàng)還被認(rèn)為是表示特權(quán)層次的數(shù)據(jù)。例如,由表2中XML行指示的層次與由數(shù)據(jù)庫(kù)服務(wù)器230為應(yīng)用程序管理的數(shù)據(jù)庫(kù)中的定購(gòu)單數(shù)據(jù)庫(kù)對(duì)象相關(guān)。在一些實(shí)施例中,關(guān)聯(lián)在XML文檔中實(shí)現(xiàn);在一些實(shí)施例中,關(guān)聯(lián)在到數(shù)據(jù)庫(kù)服務(wù)器存取控制系統(tǒng)的接口處實(shí)現(xiàn)。在一些實(shí)施例中,相同應(yīng)用程序的不同層次通過(guò)諸如層次名稱的其它方法進(jìn)行區(qū)分。
在步驟320中,服務(wù)器接收表示每個(gè)用戶和多個(gè)數(shù)據(jù)項(xiàng)中的數(shù)據(jù)項(xiàng)或組的特權(quán)的數(shù)據(jù)。可使用接收該數(shù)據(jù)的任何方法。例如,在步驟320中,應(yīng)用程序管理員形成第二XML文檔,將用戶身份(“userID”)與在特權(quán)層次100中的一個(gè)或多個(gè)特權(quán)相關(guān),并且采用數(shù)據(jù)庫(kù)服務(wù)器存取控制接口表示第二XML文檔使用戶與特權(quán)相關(guān)。該接口可為諸如HTML頁(yè)、API、或用于向服務(wù)器提供數(shù)據(jù)的其它接口的圖形用戶接口。在一些實(shí)施例中,XML文檔指定用于Murthy的統(tǒng)一存取控制系統(tǒng)的存取控制表(ACL),使用諸如以下表格3所示的XML行。在表3中,使客戶命令應(yīng)用程序做出造成將請(qǐng)求被控制的專用操作的事情的用戶被稱作“委托人”;一個(gè)委托人具有用戶ID“SCOTT”并且另一個(gè)委托人具有用戶ID“PETER”。在表格3中,每個(gè)ACL包括一個(gè)或多個(gè)存取控制部件(Access ControlElements,ACE)。每個(gè)ACE包括一個(gè)為委托人命名的委托人部件和一個(gè)特權(quán)部件。特權(quán)部件包括一列一個(gè)或多個(gè)在特權(quán)層次中通過(guò)它們名稱識(shí)別的特權(quán)。在第1和19行中的省略號(hào)表示ACL之前和之后的其它XML行。在第17行中的省略號(hào)表示指定其它ACE的其它XML行。
表3.描述每個(gè)用戶的特權(quán)的XML文檔部分
如表3的典型ACL中所示,用戶SCOTT可產(chǎn)生PO并接受物資的傳遞,而用戶PETER可批準(zhǔn)任何種類的PO并授權(quán)對(duì)賣方的付款。
在具有多層次的實(shí)施例中,在步驟320中指定每個(gè)層次中的用戶特權(quán)。例如,如果使用ACL,將有一組在應(yīng)用于定購(gòu)單數(shù)據(jù)項(xiàng)的定購(gòu)單層次中指定特權(quán)的ACL和另一組在應(yīng)用于人力資源數(shù)據(jù)項(xiàng)的人力資源層次中指定特權(quán)的ACL。
在步驟340中,服務(wù)器從應(yīng)用程序接收存取控制請(qǐng)求。該請(qǐng)求包括表示特定用戶和特定專用操作的數(shù)據(jù)以及將在其上執(zhí)行操作的數(shù)據(jù)項(xiàng)。在只有一個(gè)應(yīng)用于所有數(shù)據(jù)項(xiàng)的層次的實(shí)施例中,該數(shù)據(jù)項(xiàng)可被忽略。在具有用于一個(gè)應(yīng)用的多層次的實(shí)施例中,根據(jù)該類型的數(shù)據(jù)項(xiàng)從數(shù)據(jù)項(xiàng)中推斷出將被應(yīng)用的特權(quán)層次。一種類型的數(shù)據(jù)項(xiàng)表示一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)或數(shù)據(jù)庫(kù)對(duì)象。在一些實(shí)施例中,表示特定專用操作的數(shù)據(jù)是表示一個(gè)或多個(gè)專用操作的特定特權(quán)的數(shù)據(jù)。
為了說(shuō)明的目的,假設(shè)用戶SCOTT通過(guò)客戶210a操作應(yīng)用程序220,并且用戶PETER通過(guò)客戶210b操作應(yīng)用程序220。還假設(shè)用戶SCOTT嘗試批準(zhǔn)特定定購(gòu)單,在下文中指定為“PO12345”,用戶SCOTT剛好已經(jīng)產(chǎn)生該定購(gòu)單用于辦公物資。這導(dǎo)致應(yīng)用程序220產(chǎn)生包括表示用戶SCOTT在定購(gòu)單數(shù)據(jù)項(xiàng)PO12345上嘗試執(zhí)行需要Approve_Services特權(quán)的專用操作的數(shù)據(jù)的存取控制請(qǐng)求。在步驟340中數(shù)據(jù)庫(kù)服務(wù)器接收請(qǐng)求。
在步驟350中,服務(wù)器根據(jù)與特定數(shù)據(jù)項(xiàng)的特定用戶相關(guān)的特權(quán)確定應(yīng)用程序是否可執(zhí)行特定用戶的特定操作。例如,數(shù)據(jù)庫(kù)服務(wù)器230根據(jù)與用于在與定購(gòu)單數(shù)據(jù)項(xiàng)相關(guān)的層次中的定購(gòu)單數(shù)據(jù)項(xiàng)的SCOTT相關(guān)的特權(quán)確定應(yīng)用程序220是否可執(zhí)行需要SCOTT的Approve_Services特權(quán)的操作。
在步驟350中,服務(wù)器確定適當(dāng)?shù)膶哟?。例如,?shù)據(jù)庫(kù)服務(wù)器230根據(jù)由數(shù)據(jù)庫(kù)服務(wù)器230保存的數(shù)據(jù)庫(kù)元數(shù)據(jù)確定PO12345是定購(gòu)單型數(shù)據(jù)庫(kù)對(duì)象。隨后,數(shù)據(jù)庫(kù)服務(wù)器230確定在步驟310中接收的特權(quán)層次(在表格2中部分列出的XML文檔中)是適當(dāng)?shù)膶哟巍?br>
在步驟350中,服務(wù)器確定用戶是否具有在請(qǐng)求中表示的特權(quán)。例如,數(shù)據(jù)庫(kù)服務(wù)器230確定在表格3中列出的ACL中的用戶SCOTT出現(xiàn)在用于定購(gòu)單數(shù)據(jù)項(xiàng)的第3-9行處ACE中,但是特權(quán)Approve_Services沒(méi)有列在第5-8行所列的特權(quán)之中。因此,用戶SCOTT不具有執(zhí)行該專用操作的特權(quán)。
在步驟390中,服務(wù)器將響應(yīng)發(fā)送回應(yīng)用程序。該響應(yīng)包括表示應(yīng)用程序是否可執(zhí)行特定用戶的特定操作的數(shù)據(jù)。例如,數(shù)據(jù)庫(kù)服務(wù)器230將表示應(yīng)用程序220不應(yīng)該執(zhí)行與客戶210a相關(guān)的用戶SCOTT的批準(zhǔn)服務(wù)操作的響應(yīng)發(fā)送回應(yīng)用程序220。根據(jù)該響應(yīng),應(yīng)用程序不執(zhí)行該操作。在一些實(shí)施例中,應(yīng)用程序?qū)⑾l(fā)送給用戶的客戶,根據(jù)該響應(yīng),用戶不允許執(zhí)行專用操作。例如,根據(jù)該響應(yīng),應(yīng)用程序220將消息發(fā)送給客戶210a,不允許用戶SCOTT批準(zhǔn)用于服務(wù)的定購(gòu)單。
用位圖表現(xiàn)用戶特權(quán)在步驟350中,如上所述,服務(wù)器確定用戶是否具有在請(qǐng)求中表示的特權(quán)。在高速存儲(chǔ)器的高速緩存中保存操作應(yīng)用程序的有效客戶的用戶的特權(quán)是有利的。儲(chǔ)存在高速緩存中的用戶特權(quán)越多,服務(wù)器可響應(yīng)支持專用操作的存取控制的請(qǐng)求越快。用戶特權(quán)可表示的越緊密,可存儲(chǔ)在高速緩存中的用戶越多。根據(jù)實(shí)施例,服務(wù)器在高速緩存中使用位圖表示與每個(gè)用戶相關(guān)的特權(quán)。例如,數(shù)據(jù)庫(kù)服務(wù)器230在高速緩存232中使用位圖儲(chǔ)存用戶特權(quán)。
在該實(shí)施例中,服務(wù)器將在層次中的每個(gè)葉節(jié)點(diǎn)與比特位置相關(guān)。例如,在表格1中列出的層次100的九個(gè)葉節(jié)點(diǎn)與比特位置1至9相關(guān)。當(dāng)服務(wù)器接收表示授權(quán)給特定用戶的特權(quán)的數(shù)據(jù)(包括從永久存儲(chǔ)器中讀取該數(shù)據(jù))時(shí),服務(wù)器將對(duì)應(yīng)于授權(quán)的特權(quán)的比特設(shè)置成“ON”值,例如“1”,并且將對(duì)應(yīng)于未授權(quán)的特權(quán)的比特設(shè)置成“OFF”值,例如“0”。當(dāng)對(duì)應(yīng)親代節(jié)點(diǎn)的特權(quán)被授權(quán)時(shí),與為該親代節(jié)點(diǎn)的分支的所有葉節(jié)點(diǎn)對(duì)應(yīng)的比特被設(shè)置成ON值。例如,授權(quán)給在表格3中列出的XML行中用戶SCOTT和PETER的特權(quán)由在表格4中列出的位圖表示,其中比特位置從右(最不重要的比特)至左(最重要)計(jì)算。
表4.表示在圖1的層次中授權(quán)的特權(quán)的典型位圖
SCOTT被授予產(chǎn)生PO的特權(quán),第一葉節(jié)點(diǎn)110b,所以O(shè)N值“1”被設(shè)置在第一(最右)比特中。SCOTT還被授予接受傳遞的物資的特權(quán),第八葉節(jié)點(diǎn)1101,所以O(shè)N值“1”被設(shè)置在從右開(kāi)始的第八個(gè)比特中。PETER被授予批準(zhǔn)PO的特權(quán),其為葉節(jié)點(diǎn)110g、110h、110i的親代節(jié)點(diǎn)以分別批準(zhǔn)服務(wù)、設(shè)備、以及物資。因此,將對(duì)應(yīng)三個(gè)葉節(jié)點(diǎn)110g、110h、110i的比特設(shè)置成ON值“1”。這些比特處于從右開(kāi)始的位圖的第二到第四位置。PETER還被授予支付傳遞的特權(quán),第九葉節(jié)點(diǎn)110f,所以O(shè)N值“1”被設(shè)置在從右開(kāi)始的第九比特中,即最左比特中。
在一些具有多層次的實(shí)施例中,所有層次的葉節(jié)點(diǎn)都集合在單一位圖中。在其它實(shí)施例中,不同層次的葉節(jié)點(diǎn)被集合在不同位圖中。在一些實(shí)施例中,可根據(jù)層次的名稱和特權(quán)的名稱用散列函數(shù)確定比特位置。
在一些使用位圖的實(shí)施例中,在步驟350中,數(shù)據(jù)庫(kù)服務(wù)器230確定用于特定數(shù)據(jù)項(xiàng)的特定用戶的位圖是否已經(jīng)在高速緩存232中。如果是,可以消除從儲(chǔ)存在永久存儲(chǔ)器240上的數(shù)據(jù)取回位圖的操作。如果不是,從永久存儲(chǔ)器240中取回用戶的位圖并且添加到高速緩存232中。如果在高速緩存232中沒(méi)有足夠的空間放置取回的位圖,那么使用技術(shù)領(lǐng)域中已知的任一方法釋放高速緩存232中的空間。例如,分配給最近使用的位圖的存儲(chǔ)器可用于特定用戶的位圖。
隨后數(shù)據(jù)庫(kù)服務(wù)器230確定與專用操作的特權(quán)或在步驟340中接收的存取控制請(qǐng)求中表示的特權(quán)相關(guān)的比特位置。例如,使用在表格2中表示的層次,數(shù)據(jù)庫(kù)服務(wù)器確定與Approve_Services特權(quán)相關(guān)的批準(zhǔn)服務(wù)操作與第二葉節(jié)點(diǎn)相關(guān)并因此與位圖的第二比特相關(guān)。
在步驟350中,隨后數(shù)據(jù)庫(kù)服務(wù)器230確定在那個(gè)比特位置中的比特是否被設(shè)置成ON值。例如,數(shù)據(jù)庫(kù)服務(wù)器確定在表格4中列出的SCOTT的位圖中第二比特未被設(shè)置成ON值。因此,數(shù)據(jù)庫(kù)服務(wù)器確定SCOTT不具有批準(zhǔn)服務(wù)的特權(quán)。
如果數(shù)據(jù)庫(kù)服務(wù)器230從PETER接收請(qǐng)求以批準(zhǔn)PO12345,在步驟350中,數(shù)據(jù)庫(kù)服務(wù)器230確定在表格4中列出的PETER的位圖中第二比特被設(shè)置成ON值。因此,數(shù)據(jù)庫(kù)服務(wù)器確定PETER具有批準(zhǔn)服務(wù)的特權(quán)。
如在此所述,用于確定用戶特權(quán)的高速緩存232和位圖的使用是很有效的。應(yīng)用程序開(kāi)發(fā)者可通過(guò)諸如數(shù)據(jù)庫(kù)或內(nèi)容管理服務(wù)器的分離的服務(wù)器利用該有效的特權(quán)確定,不需要大量的軟件開(kāi)發(fā)。應(yīng)用程序管理員經(jīng)常使用已經(jīng)為分離的服務(wù)器建造的接口,簡(jiǎn)單地一次提供特權(quán)的層次和分離的服務(wù)器的用戶特權(quán)。開(kāi)發(fā)新應(yīng)用,或更改現(xiàn)有應(yīng)用以簡(jiǎn)單地將存取控制請(qǐng)求發(fā)送給分離的服務(wù)器。不需要開(kāi)發(fā)該應(yīng)用以有效確定特權(quán)是否可用于專用操作。例如,不需要開(kāi)發(fā)應(yīng)用以管理高速緩存232或形成用戶特權(quán)的位圖。
硬件概述圖4是描述可應(yīng)用本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)400的框圖。計(jì)算機(jī)系統(tǒng)400包括用于傳遞信息的總線402或其它通信裝置、用于處理信息的與總線402連接的處理器404。計(jì)算機(jī)系統(tǒng)400還包括主存儲(chǔ)器406,例如隨機(jī)存取存儲(chǔ)器(RAM)或者其它動(dòng)態(tài)存儲(chǔ)裝置,與總線402連接,用于儲(chǔ)存信息及處理器404要執(zhí)行的指令。主存儲(chǔ)器406還可用于儲(chǔ)存處理器404執(zhí)行指令過(guò)程中的臨時(shí)變量或其他中間信息。計(jì)算機(jī)系統(tǒng)400還包括只讀存儲(chǔ)器(ROM)408或者其他靜態(tài)存儲(chǔ)裝置,與總線402連接,用于儲(chǔ)存靜態(tài)信息和處理器404的要執(zhí)行的指令。存儲(chǔ)裝置410,如磁盤或光盤,和總線402連接以儲(chǔ)存信息和指令。
計(jì)算機(jī)系統(tǒng)400可以經(jīng)由總線402連接到顯示器412,如陰極射線管(CRT),用于向計(jì)算機(jī)用戶顯示信息。包括字母數(shù)字鍵和其他鍵的輸入裝置414與總線402相連,用于傳遞通信信息和命令選擇到處理器404。另一種用戶輸入裝置是光標(biāo)控制416,如鼠標(biāo)、跟蹤球、或光標(biāo)方向鍵,用于傳遞方向信息和命令選擇到處理器404及用于控制顯示器412上的光標(biāo)移動(dòng)。這個(gè)輸入裝置通常在兩個(gè)軸上(第一個(gè)軸(例如X軸)和第二個(gè)軸(例如Y軸))具有兩個(gè)自由度,使裝置能指定平面上的位置。
本發(fā)明涉及用于實(shí)現(xiàn)在此描述的技術(shù)的計(jì)算機(jī)系統(tǒng)400的使用。根據(jù)本發(fā)明的實(shí)施例,響應(yīng)于處理器404執(zhí)行在主存儲(chǔ)器406中包括的一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列,這些技術(shù)通過(guò)計(jì)算機(jī)系統(tǒng)400執(zhí)行。這樣的指令可從諸如存儲(chǔ)設(shè)備410的另一計(jì)算機(jī)可讀介質(zhì)讀入主存儲(chǔ)器406。通過(guò)執(zhí)行包含在主存儲(chǔ)器406中的指令序列,使處理器404執(zhí)行此處所述的處理步驟。在可選實(shí)施例中,硬連線電路(hard-wired circuitry)可取代軟件指令或者與軟件指令結(jié)合來(lái)實(shí)施該發(fā)明。因此,本發(fā)明中的實(shí)施例將不限于硬件電路和軟件的任何特定組合。
這里使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”是指參與提供指令給用于執(zhí)行的處理器404的任何介質(zhì)。這種介質(zhì)可以采取很多形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)和傳遞介質(zhì)。非易失性介質(zhì)舉例來(lái)說(shuō)包括光盤或磁盤,如存儲(chǔ)裝置410。易失性介質(zhì)包括動(dòng)態(tài)存儲(chǔ)器,如主存儲(chǔ)器406。傳輸介質(zhì)包括同軸電纜、銅線、和光纖,包括由總線402組成的導(dǎo)線。傳輸介質(zhì)還可采取聲波或光波的形式,例如那些在無(wú)線電波和紅外線數(shù)據(jù)通信過(guò)程中產(chǎn)生的聲波和光波。
通常的計(jì)算機(jī)可讀介質(zhì)舉例來(lái)說(shuō)包括軟盤、柔性盤、硬盤、磁帶,或者任何其它磁性介質(zhì)、CD-ROM、任何其它光介質(zhì)、打孔紙、紙帶、或者任何帶孔的物理介質(zhì)、RAM、PROM、EPROM、FLASH-EPROM、或者其他任何存儲(chǔ)芯片或者磁帶,或者以下提到的載波、或者計(jì)算機(jī)可讀的任何其他介質(zhì)。
各種形式的計(jì)算機(jī)可讀介質(zhì)可參與傳送一個(gè)或者多個(gè)指令的一個(gè)或多個(gè)序列到用于執(zhí)行的處理器404。例如,指令開(kāi)始可承載遠(yuǎn)程計(jì)算機(jī)的磁盤中。遠(yuǎn)程計(jì)算機(jī)能將該指令加載到其動(dòng)態(tài)存儲(chǔ)器中,然后使用調(diào)制解調(diào)器基于電話線發(fā)送信息。計(jì)算機(jī)系統(tǒng)400本地的調(diào)制解調(diào)器可接收電話線上的數(shù)據(jù),然后使用紅外轉(zhuǎn)換器將數(shù)據(jù)轉(zhuǎn)換成紅外信號(hào)。紅外探測(cè)器可以接收紅外信號(hào)攜帶的數(shù)據(jù),合適的電路可以把信息放到總線402上??偩€402把數(shù)據(jù)傳遞到主存儲(chǔ)器406中,處理器404從主存儲(chǔ)器406取回并執(zhí)行這些指令。在處理器404執(zhí)行這些指令之前或之后,主存儲(chǔ)器406接收的指令可隨意地儲(chǔ)存于存儲(chǔ)裝置410中。
計(jì)算機(jī)系統(tǒng)400還包括連接到總線402的通信接口418。通信接口418提供雙向數(shù)據(jù)通信,連接到與局域網(wǎng)422相連的網(wǎng)絡(luò)鏈路420。例如,通信接口418可以是綜合業(yè)務(wù)數(shù)字網(wǎng)(Integrated ServicesDigital Network,ISDN)卡或者調(diào)制解調(diào)器,用于提供到相應(yīng)類型電話線的數(shù)據(jù)通信連接。又如,通信接口418可以是局域網(wǎng)(LocalArea Network,LAN)卡,用于提供至兼容局域網(wǎng)(LAN)的數(shù)據(jù)通信連接。也可以使用無(wú)線鏈路。無(wú)論采用何種連接,通信接口418均發(fā)送和接受承載各種信息的數(shù)字?jǐn)?shù)據(jù)流的電信號(hào)、電磁信號(hào)和光學(xué)信號(hào)。
網(wǎng)絡(luò)鏈路420通??赏ㄟ^(guò)一個(gè)或者多個(gè)網(wǎng)絡(luò)提供數(shù)據(jù)通信給其它數(shù)據(jù)裝置。例如,網(wǎng)絡(luò)鏈路420可通過(guò)局域網(wǎng)422與主機(jī)424連接,或者與互聯(lián)網(wǎng)服務(wù)提供商(Internet Service Provider,ISP)426操作的數(shù)據(jù)設(shè)備連接。ISP 426又通過(guò)目前通稱為“互聯(lián)網(wǎng)”428的全球分組數(shù)據(jù)通信網(wǎng)絡(luò)(World Wide Packet Data CommunicationNetwork)提供數(shù)據(jù)通信服務(wù)。局域網(wǎng)422和互聯(lián)網(wǎng)428都使用承載數(shù)字?jǐn)?shù)據(jù)流的電信號(hào)、電磁信號(hào)或光學(xué)信號(hào)。如通過(guò)各種網(wǎng)絡(luò)的信號(hào),網(wǎng)絡(luò)鏈路420上的信號(hào),通過(guò)通信接口418的信號(hào)是傳輸信息的載波的示范形式,這些信號(hào)都傳送數(shù)字?jǐn)?shù)據(jù)給計(jì)算機(jī)系統(tǒng)400或者傳送來(lái)自計(jì)算機(jī)系統(tǒng)的數(shù)字?jǐn)?shù)據(jù)。
計(jì)算機(jī)系統(tǒng)400能通過(guò)網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路420和通信接口418發(fā)送消息和接收數(shù)據(jù)(包括程序代碼)。例如,在互聯(lián)網(wǎng)的例子中,服務(wù)器430可通過(guò)互聯(lián)網(wǎng)428、ISP 426、局域網(wǎng)422、和通信接口418,傳送所請(qǐng)求的用于應(yīng)用程序的代碼。
當(dāng)代碼被接收和/或儲(chǔ)存在存儲(chǔ)裝置410上或者其它非易失性存儲(chǔ)器上用于隨后執(zhí)行時(shí),處理器404可執(zhí)行所接收到的代碼。按照這種方式,計(jì)算機(jī)系統(tǒng)400可以獲得載波形式的應(yīng)用程序代碼。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用于控制對(duì)由應(yīng)用程序執(zhí)行的專用操作的存取的方法,包括以下步驟在不同于所述應(yīng)用程序的服務(wù)器處接收特權(quán)信息;使所述服務(wù)器根據(jù)所述特權(quán)信息確定在一組特定條件下是否允許特定專用操作;以及使所述服務(wù)器將在該組特定條件下是否允許所述特定專用操作的指示傳送到所述應(yīng)用程序。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述接收特權(quán)信息的步驟包括在所述服務(wù)器接收描述用于執(zhí)行第一多個(gè)專用操作的第一組特權(quán)的第一數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述接收特權(quán)信息的步驟還包括在所述服務(wù)器接收使所述應(yīng)用程序的用戶與在所述第一組特權(quán)中的一個(gè)或多個(gè)特權(quán)相關(guān)聯(lián)的第二數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟響應(yīng)于在所述服務(wù)器處從所述應(yīng)用程序接收用于指示特定用戶和特定專用操作的請(qǐng)求,根據(jù)所述特權(quán)信息確定所述特定用戶是否可使所述應(yīng)用程序執(zhí)行所述特定專用操作;以及其中,使所述服務(wù)器將指示傳送給所述應(yīng)用程序的步驟包括將指示所述特定用戶是否可使所述應(yīng)用程序執(zhí)行所述特定專用操作的響應(yīng)發(fā)送到所述應(yīng)用程序的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其中所述接收特權(quán)信息的步驟還包括接收使第一組特權(quán)與在其上執(zhí)行所述多個(gè)專用操作的第一類數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的第一數(shù)據(jù);以及所述接收所述請(qǐng)求的步驟還包括接收還指示特定數(shù)據(jù)項(xiàng)的請(qǐng)求;以及所述確定所述特定用戶是否可使所述應(yīng)用程序執(zhí)行所述特定專用操作的步驟還包括確定所述特定數(shù)據(jù)項(xiàng)是否是所述第一類數(shù)據(jù)項(xiàng)中的成員。
6.根據(jù)權(quán)利要求5所述的方法,其中所述方法還包括在所述服務(wù)器處接收第二數(shù)據(jù),所述第二數(shù)據(jù)用于描述用于在不同于所述第一類數(shù)據(jù)項(xiàng)的第二類數(shù)據(jù)項(xiàng)上執(zhí)行第二多個(gè)專用操作的第二組特權(quán);以及所述確定所述特定用戶是否可使所述應(yīng)用程序執(zhí)行所述特定專用操作的步驟部分是根據(jù)所述特定類型的特定數(shù)據(jù)項(xiàng)執(zhí)行的。
7.根據(jù)權(quán)利要求1所述的方法,所述接收特權(quán)信息的步驟包括接收可擴(kuò)展標(biāo)記語(yǔ)言(XML)形式的文檔。
8.根據(jù)權(quán)利要求4所述的方法,所述確定所述特定用戶是否可使所述應(yīng)用程序執(zhí)行所述特定專用操作的步驟還包括管理在用于儲(chǔ)存信息的高速存儲(chǔ)器中的高速緩存的步驟,所述信息使一個(gè)或多個(gè)用戶中的每個(gè)用戶與在一組或多組特權(quán)的每組中的一個(gè)或多個(gè)特權(quán)相關(guān)聯(lián)。
9.根據(jù)權(quán)利要求2所述的方法,所述管理所述高速緩存的步驟還包括在所述高速緩存中儲(chǔ)存指示與每個(gè)用戶相關(guān)聯(lián)的一類數(shù)據(jù)項(xiàng)的數(shù)據(jù)的步驟。
10.根據(jù)權(quán)利要求2所述的方法,其中,所述第一組特權(quán)形成兩層或多層特權(quán)的第一層次。
11.根據(jù)權(quán)利要求8所述的方法,所述管理所述高速緩存的步驟還包括在所述高速緩存中儲(chǔ)存每個(gè)用戶的位圖,其中每組特權(quán)形成一層或多層特權(quán)的一個(gè)層次;在所述位圖中的每個(gè)不同位置對(duì)應(yīng)于在所述一組或多組特權(quán)的每個(gè)層次中的一個(gè)不同葉節(jié)點(diǎn);以及葉節(jié)點(diǎn)是不具有任何子節(jié)點(diǎn)的層次的節(jié)點(diǎn)。
12.一種用于控制對(duì)由應(yīng)用程序執(zhí)行的專用操作的存取的方法,包括以下步驟將特權(quán)信息傳送到不同于所述應(yīng)用程序的服務(wù)器;將請(qǐng)求從所述應(yīng)用程序發(fā)送到所述服務(wù)器,用于服務(wù)器根據(jù)所述特權(quán)信息確定在一組特定條件下是否允許特定專用操作;從所述服務(wù)器接收在該組特定條件下是否允許所述特定專用操作的指示;以及如果所述服務(wù)器指示在該組特定條件下允許所述特定專用操作,則所述應(yīng)用程序只允許所述特定專用操作。
13.根據(jù)權(quán)利要求12所述的方法,其中將特權(quán)信息傳送到服務(wù)器的步驟包括將第一數(shù)據(jù)發(fā)送到不同于所述應(yīng)用程序的服務(wù)器,所述第一數(shù)據(jù)用于描述用于執(zhí)行第一多個(gè)專用操作的第一組特權(quán);以及將第二數(shù)據(jù)發(fā)送到所述服務(wù)器,所述第二數(shù)據(jù)用于使所述應(yīng)用程序的第一用戶與在所述第一組特權(quán)中的特權(quán)相關(guān)聯(lián)。
14.根據(jù)權(quán)利要求12所述的方法,還包括以下步驟在所述應(yīng)用程序處接收來(lái)自特定用戶的命令,所述命令包括使所述應(yīng)用程序執(zhí)行特定專用操作;將指示所述特定用戶和所述特定專用操作的請(qǐng)求發(fā)送到所述服務(wù)器;其中,從所述服務(wù)器接收在所述組特定條件下是否允許特定專用操作的指示的步驟包括根據(jù)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)從所述服務(wù)器接收指示所述特定用戶是否可使所述應(yīng)用程序執(zhí)行所述特定專用操作的響應(yīng);以及只有所述響應(yīng)指示所述特定用戶可使所述應(yīng)用程序執(zhí)行所述特定專用操作時(shí),執(zhí)行所述特定專用操作。
15.根據(jù)權(quán)利要求13所述的方法,其中所述發(fā)送所述第一數(shù)據(jù)的步驟還包括發(fā)送還使所述第一組特權(quán)與在其上執(zhí)行所述多個(gè)專用操作的第一類數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的第一數(shù)據(jù);以及所述發(fā)送所述請(qǐng)求的步驟還包括發(fā)送還指示特定數(shù)據(jù)項(xiàng)的所述請(qǐng)求;以及根據(jù)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)接收所述響應(yīng)的步驟還包括還根據(jù)所述特定數(shù)據(jù)項(xiàng)是否為所述第一類數(shù)據(jù)項(xiàng)中的成員接收所述響應(yīng)。
16.根據(jù)權(quán)利要求15所述的方法,其中所述方法還包括將第三數(shù)據(jù)發(fā)送到所述服務(wù)器,所述第三數(shù)據(jù)用于描述用于在不同的第二類數(shù)據(jù)項(xiàng)上執(zhí)行第二多個(gè)專用操作的不同的第二組特權(quán);以及所述發(fā)送所述第二數(shù)據(jù)的步驟還包括發(fā)送還使所述應(yīng)用程序的第二用戶與在所述第二層次的特權(quán)中的特權(quán)相關(guān)聯(lián)的第二數(shù)據(jù);以及根據(jù)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)接收所述響應(yīng)的步驟還包括接收還根據(jù)特定類型的所述特定數(shù)據(jù)項(xiàng)是否與用于包括所述特定專用操作的特定多個(gè)專用操作的一組特定特權(quán)相關(guān)聯(lián)的響應(yīng)。
17.根據(jù)權(quán)利要求12所述的方法,所述傳送特權(quán)信息的步驟還包括發(fā)送可擴(kuò)展標(biāo)記語(yǔ)言(XML)形式的文檔。
18.根據(jù)權(quán)利要求13所述的方法,其中,應(yīng)用程序不管理在用于儲(chǔ)存信息的高速存儲(chǔ)器中的高速緩存,所述信息使一個(gè)或多個(gè)用戶中的每個(gè)用戶與在包括所述第一組特權(quán)的一組或多組特權(quán)的每組中的一個(gè)或多個(gè)特權(quán)相關(guān)聯(lián)。
19.根據(jù)權(quán)利要求13所述的方法,其中,所述第一組特權(quán)形成兩層或多層特權(quán)的第一層次。
20.承載一個(gè)或多個(gè)指令序列的計(jì)算機(jī)可讀介質(zhì),當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行所述指令序列時(shí),所述指令序列使所述一個(gè)或多個(gè)處理器執(zhí)行在權(quán)利要求1至19中任一項(xiàng)所述的方法。
全文摘要
用于支持在由應(yīng)用程序執(zhí)行的專用操作上的存取控制的技術(shù)包括在不同于應(yīng)用程序的服務(wù)器接收第一數(shù)據(jù)。該第一數(shù)據(jù)描述用于執(zhí)行第一組專用操作的第一組特權(quán)。也在服務(wù)器接收第二數(shù)據(jù)。該第二數(shù)據(jù)使應(yīng)用程序的第一用戶與在第一組特權(quán)中的特權(quán)相關(guān)聯(lián)。響應(yīng)于在服務(wù)器從應(yīng)用程序接收的請(qǐng)求,根據(jù)第一數(shù)據(jù)和第二數(shù)據(jù)確定特定用戶是否可使應(yīng)用程序執(zhí)行特定專用操作。請(qǐng)求指示特定用戶和特定專用操作。響應(yīng)被發(fā)送到應(yīng)用程序。該響應(yīng)指示特定用戶是否可使應(yīng)用程序執(zhí)行特定專用操作。
文檔編號(hào)G06F17/30GK1717656SQ200380104429
公開(kāi)日2006年1月4日 申請(qǐng)日期2003年11月6日 優(yōu)先權(quán)日2002年11月6日
發(fā)明者薩姆·伊迪庫(kù)拉, 尼普恩·阿加瓦爾, 拉維·默西 申請(qǐng)人:甲骨文國(guó)際公司