專利名稱::向用戶/組授予訪問控制列表所有權(quán)的訪問控制系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及保護(hù)對存儲在數(shù)據(jù)庫系統(tǒng)中的資源的訪問。
背景技術(shù):
:訪問控制列表(ACL)是控制對受保護(hù)資源如文檔的訪問的公知方式。例如,很多公知的系統(tǒng)和應(yīng)用允許對可以如何查看、打印、修改或轉(zhuǎn)發(fā)文檔施加限制。典型地,ACL包含關(guān)于哪些用戶或用戶組具有對資源的訪問權(quán)以及每一個被授予了什么級別的訪問權(quán)的信息。公知的系統(tǒng)一般提供兩種ACL系統(tǒng)或預(yù)定義的ACL;以及定制或用戶定義的ACL。系統(tǒng)ACL通常可用于系統(tǒng)的所有用戶,并且典型地由系統(tǒng)管理員擁有。定制或用戶定義的ACL由系統(tǒng)中的用戶創(chuàng)建和擁有。遺憾的是,公知的系統(tǒng)難以結(jié)合定制ACL來管理系統(tǒng)ACL。由于針對特定資源的權(quán)限可以大大不同,因此用戶經(jīng)常需要創(chuàng)建他們自己的定制ACL的能力。然而,由于各種安全性原因,公知的系統(tǒng)和應(yīng)用不允許用戶訪問由不同的用戶創(chuàng)建的其它定制ACL。例如,公知的系統(tǒng)一般限制用戶訪問其它定制ACL,以便防止該用戶故意或無意地授予不適當(dāng)?shù)膶Y源或項目的訪問。因此,用戶必須從零開始創(chuàng)建他們的定制ACL。隨著用戶和資源的數(shù)量增加,管理定制ACL的復(fù)雜性驚人地增長。這最終可能消耗大量的系統(tǒng)資源或者降低其性能。從而,期望提供允許靈活的ACL所有權(quán)及其使用的方法和系統(tǒng)。
發(fā)明內(nèi)容根據(jù)本發(fā)明的實施例,創(chuàng)建可以由多個用戶使用的訪問控制列表。從第一用戶接收用于訪問控制列表的信息。還從第一用戶接收已被授予給第二用戶的針對該訪問控制列表的特權(quán)集。然后,基于由第一用戶授予的該特權(quán)集,準(zhǔn)許第二用戶使用該訪問控制列表。根據(jù)本發(fā)明的其它實施例,可以向受保護(hù)資源分配訪問控制列表。該訪問控制列表已經(jīng)由第一用戶創(chuàng)建,并且準(zhǔn)許至少一個另外用戶使用該訪問控制列表。接收來自該至少一個另外用戶的向該受保護(hù)資源分配該訪問控制列表的請求。確定已經(jīng)從第一用戶授予給該至少一個另外用戶的針對該訪問控制列表的特權(quán)集。然后,基于該特權(quán)集,準(zhǔn)許該至少一個另外用戶向該受保護(hù)資源分配該訪問控制列表。本發(fā)明的另外特征將在下面描述中加以闡述,并且從該描述中部分將是明顯的,或者可以通過本發(fā)明的實施來了解。本發(fā)明的特征將通過在所附權(quán)利要求中具體指出的單元和組合來實現(xiàn)和獲得。應(yīng)當(dāng)理解,前述一般描述和下面詳細(xì)描述只是示例性和說明性的,并且不限制要求保護(hù)的本發(fā)明。包括在本說明書中且形成其一部分的附圖示出了本發(fā)明的實施例,并且與本描述一起用來說明本發(fā)明的原理。圖1示出了根據(jù)本發(fā)明實施例的訪問控制列表的概念圖;圖2示出了根據(jù)本發(fā)明實施例的內(nèi)容管理系統(tǒng);圖2A是可以實現(xiàn)根據(jù)本發(fā)明的方法和系統(tǒng)的示例性計算機(jī)系統(tǒng)的內(nèi)部方框圖;圖3示出了根據(jù)本發(fā)明實施例的庫服務(wù)器;圖4A示出了可以由本發(fā)明的實施例使用的用戶簡檔表(userprofiletable)的一個例子;圖4B示出了可以由本發(fā)明的實施例使用的訪問控制列表表的一個例子;圖5示出了根據(jù)本發(fā)明原理的用于創(chuàng)建訪問控制列表的處理流程;以及圖6示出了根據(jù)本發(fā)明原理的用于分配訪問控制列表的處理流程。具體實施例方式本發(fā)明的實施例支持靈活的訪問控制設(shè)計。作為其訪問控制的一部分,訪問控制列表(ACL)在一些實施例中可以被定義為用戶標(biāo)識符和對應(yīng)的特權(quán)或特權(quán)集的集合。特權(quán)可以是允許用戶或用戶組的特定操作例如創(chuàng)建、更新、讀取或刪除的權(quán)限或許可的任何集合。ACL可以被分配給一個或多個資源、或項目、或資源或項目的類型。本發(fā)明的一些實施例允許靈活的ACL所有權(quán)及其分配。ACL的創(chuàng)建者或擁有者可以向他人授予特權(quán),使得他們可以基于他們的特權(quán)而修改或分配ACL。每個ACL可以具有一個或多個擁有者,即可以對ACL施加控制的用戶。然后,ACL的任何擁有者可以向其他用戶指定特定特權(quán)。例如,擁有者可以指定其自己可以向項目分配ACL的其他用戶。擁有者也可以限制其它擁有者能夠修改ACL。然后,多個用戶可以基于授予給他們的特權(quán)而分配、擁有或修改ACL。一些實施例可以提供接口,以便有效地管理ACL,例如定制或用戶定義的ACL。這些接口可以包括列出用戶是擁有者的那些ACL或者用戶已被授予了分配特權(quán)的那些ACL的能力。這些接口還可以列出提供給所有用戶的系統(tǒng)ACL。圖1示出了根據(jù)本發(fā)明實施例的管理ACL的概念圖。如圖所示,用戶組101和102可以包括一個或多個用戶104。系統(tǒng)ACL106可用于所有用戶104即用戶組101和102。然而,另外,ACL108a-n和110a-n分別可用于用戶組101和102。也就是,用戶組101具有對ACL108a-n的特權(quán),而用戶組102具有對ACL110a-n的特權(quán)。在一些實施例中,用戶組101還可以被阻止訪問其域之外的ACL,例如分配給用戶組102的那些ACL,并且反之亦然?,F(xiàn)在將詳細(xì)參考在附圖中示出的本發(fā)明的示例性實施例。只要可能,就將貫穿附圖使用相同的附圖標(biāo)記,以表示相同或類似的部分。圖2示出了根據(jù)本發(fā)明實施例的內(nèi)容管理系統(tǒng)200。如圖所示,內(nèi)容管理系統(tǒng)200可以包括客戶端202、庫服務(wù)器204、以及資源管理器206。這些組件可以使用一個或多個網(wǎng)絡(luò)如局域網(wǎng)或廣域網(wǎng)耦接在一起。另外,這些組件可以使用公知的協(xié)議如傳輸控制協(xié)議和網(wǎng)際協(xié)議(“TCP/IP”)和超文本傳輸協(xié)議(“HTTP”)相互通信。內(nèi)容管理系統(tǒng)200的這些組件可以在單獨的設(shè)備上實現(xiàn),或者可以在一個或多個相同設(shè)備或系統(tǒng)上實現(xiàn)。例如,庫服務(wù)器102和資源管理器104可以被安裝在相同的機(jī)器上,并且在公共的操作系統(tǒng)下運(yùn)行??蛇x地,內(nèi)容管理系統(tǒng)200的組件中的一個或多個可以在運(yùn)行不同操作系統(tǒng)的多個機(jī)器上實現(xiàn)。現(xiàn)在將描述內(nèi)容管理系統(tǒng)200的一些特定組件??蛻舳?02提供用于內(nèi)容管理系統(tǒng)200的用戶接口。客戶端202可以使用各種設(shè)備和軟件來實現(xiàn)。例如,客戶端202可以在個人計算機(jī)、工作站或終端上實現(xiàn)。另外,客戶端202可以在Windows操作系統(tǒng)下或者通過瀏覽器應(yīng)用程序如Microsoft公司的InternetExplorerTM或者M(jìn)ozilla的FireFox來運(yùn)行。雖然圖2示出了單個客戶端,但是內(nèi)容管理系統(tǒng)200可以包括任意數(shù)目的客戶端。庫服務(wù)器204存儲、管理和提供對由內(nèi)容管理系統(tǒng)200存儲的項目和資源的訪問控制。庫服務(wù)器204處理來自客戶端202的請求,例如創(chuàng)建、讀取、更新和刪除,并且在內(nèi)容管理系統(tǒng)200的其它組件如資源管理器206之間維持?jǐn)?shù)據(jù)完整性。例如,庫服務(wù)器204可以結(jié)合資源管理器206工作,以檢索由項目引用的對象,如文檔或圖像文件。另外,庫服務(wù)器204可以施行(enforce)特定訪問控制,例如訪問控制列表,以保護(hù)由資源管理器206存儲的資源或項目。庫服務(wù)器204可以使用各種設(shè)備和軟件來實現(xiàn)。例如,庫服務(wù)器204可以是在操作系統(tǒng)如z/OS、Windows、AIX或Solaris下運(yùn)行一個或多個應(yīng)用程序和存儲過程的計算機(jī)。另外,庫服務(wù)器204可以包括數(shù)據(jù)庫管理系統(tǒng)例如關(guān)系數(shù)據(jù)庫管理系統(tǒng),以管理所存儲的項目并且執(zhí)行對內(nèi)容管理系統(tǒng)200的搜索。例如,庫服務(wù)器204可以使用國際商業(yè)機(jī)器公司的DB2通用數(shù)據(jù)庫。庫服務(wù)器204還參照圖3加以描述。資源管理器206存儲與內(nèi)容管理系統(tǒng)200中的項目或資源相對應(yīng)的對象。項目或資源可以是采取數(shù)字形式的任何數(shù)據(jù)實體。例如,項目或資源可以是音頻文件、應(yīng)用程序、圖像、文本或者視頻文件。資源管理器206可以存儲采取各種格式的項目或資源,例如JPEG圖像、MP3音頻、AVI視頻和ASCII文本。資源管理器206還可以存儲采取多種格式的項目或資源,例如MicrosoftWordTM、LotusWordProTM、以及WordperfectTM。此外,資源管理器206還可以被配置為在相同或單獨的資源管理器(未示出)上存儲項目或資源的多個副本。雖然圖2示出了單個資源管理器,但是內(nèi)容管理系統(tǒng)200可以包括任意數(shù)目的資源管理器。例如,內(nèi)容管理系統(tǒng)200可以包括跨越一個或多個網(wǎng)絡(luò)分布的多個資源管理器。資源管理器206可以使用公知的設(shè)備和軟件來實現(xiàn)。例如,資源管理器206可以被安裝于在z/OS操作系統(tǒng)下運(yùn)行的一個或多個計算機(jī)上,并且包括DB2通用數(shù)據(jù)庫、以及用來與客戶端202和庫服務(wù)器204通信的服務(wù)器如HTTP服務(wù)器。另外,資源管理器206可以包括一個或多個存儲設(shè)備,例如磁盤驅(qū)動器。圖2A是可以實現(xiàn)根據(jù)本發(fā)明的方法和系統(tǒng)的示例性計算機(jī)系統(tǒng)250的內(nèi)部方框圖。計算機(jī)系統(tǒng)250可以代表圖2中的示例性系統(tǒng)架構(gòu)200的客戶端202、庫服務(wù)器204、資源管理器206或服務(wù)器的內(nèi)部組件。計算機(jī)系統(tǒng)250可以例如是傳統(tǒng)的個人計算機(jī)(PC)、桌面和手持設(shè)備、多處理器計算機(jī)、筆式計算機(jī)、基于微處理器或可編程的消費(fèi)電子產(chǎn)品、微型計算機(jī)、大型機(jī)計算機(jī)、個人移動計算設(shè)備、移動電話、便攜或靜止個人計算機(jī)、掌上型計算機(jī)或者在本
技術(shù)領(lǐng)域:
內(nèi)公知的其它這樣的計算機(jī)。計算機(jī)系統(tǒng)250包括全都通過系統(tǒng)總線295互連的CPU260、存儲器270、網(wǎng)絡(luò)接口280、I/O設(shè)備285、顯示器290。如圖2A所示,計算機(jī)系統(tǒng)250包含中央處理單元(CPU)260。CPU260可以是微處理器,例如由英特爾公司制造的微處理器的Pentium系列。然而,可以使用任何其它的適當(dāng)微處理器、微型、小型或大型計算機(jī),例如微控制器單元(MCU)、數(shù)字信號處理器(DSP)。存儲器270可以包括隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、視頻存儲器、大容量存儲裝置、或者高速緩沖存儲器,例如固定和移動介質(zhì)(例如,磁、光或磁光存儲系統(tǒng)或者其它可用的大容量存儲技術(shù))。存儲器270存儲多個支持模塊,例如基本輸入輸出系統(tǒng)(BIOS)、操作系統(tǒng)(OS)、程序庫、編譯器、解釋器和文本處理工具。支持模塊可以購得,并且可以由本領(lǐng)域的技術(shù)人員安裝在計算機(jī)系統(tǒng)250上。為了簡單起見,未示出這些模塊。此外,存儲器270可以包含操作系統(tǒng)、應(yīng)用例程、程序、應(yīng)用程序編程接口(API)以及用于執(zhí)行根據(jù)本發(fā)明的方法的其它指令。其例子包括以太網(wǎng)或者撥號電話連接的網(wǎng)絡(luò)接口280可以用來與網(wǎng)絡(luò)140上的計算系統(tǒng)通信。計算機(jī)系統(tǒng)250還可以通過輸入/輸出(I/O)設(shè)備285來接收輸入,其中輸入/輸出(I/O)設(shè)備285可以包括鍵盤、定點設(shè)備或者其它類似的輸入設(shè)備。計算機(jī)系統(tǒng)250也可以通過顯示器290向用戶呈現(xiàn)信息和接口??偩€295可以是雙向系統(tǒng)總線。例如,總線295可以包含用于對存儲器270進(jìn)行尋址的三十二位地址線、以及通過其在組件之間傳輸數(shù)據(jù)的三十二位數(shù)據(jù)線。可選地,可以使用多路復(fù)用數(shù)據(jù)/地址線而非單獨的數(shù)據(jù)和地址線。圖3示出了根據(jù)本發(fā)明實施例的庫服務(wù)器。如圖所示,庫服務(wù)器204可以包括應(yīng)用程序300、訪問控制模塊302、以及庫服務(wù)器數(shù)據(jù)庫304。應(yīng)用程序300是實現(xiàn)庫服務(wù)器204的函數(shù)和過程例如與客戶端202和資源管理器206的通信以及與庫服務(wù)器數(shù)據(jù)庫304的操作的程序代碼。應(yīng)用程序300可以采用各種主機(jī)編程語言例如C、C++、Java或COBOL編寫。庫服務(wù)器數(shù)據(jù)庫302用作由內(nèi)容管理系統(tǒng)200存儲的項目的目錄。庫服務(wù)器數(shù)據(jù)庫304可以包括一個或多個數(shù)據(jù)結(jié)構(gòu),其保護(hù)對由資源管理器206存儲的項目或資源的訪問。訪問控制模塊302是實現(xiàn)由庫服務(wù)器204施行的訪問控制的程序代碼,例如檢索被授予給用戶104的ACL特權(quán),以及訪問被分配給所請求的項目或資源的ACL。訪問控制模塊302可以被實現(xiàn)為硬件、固件或軟件的組合。例如,訪問控制模塊302可以是采用各種主機(jī)編程語言例如C、C++、Java或COBOL編寫的軟件。雖然訪問控制模塊302被示出為獨立于應(yīng)用程序300的組件,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識到,訪問控制模塊302可以集成在庫服務(wù)器204的應(yīng)用程序或某其它組件內(nèi)。庫服務(wù)器數(shù)據(jù)庫304可以使用各種設(shè)備和軟件來實現(xiàn)。例如,庫服務(wù)器數(shù)據(jù)庫304可以被實現(xiàn)為關(guān)系數(shù)據(jù)庫,例如DB2通用數(shù)據(jù)庫。另外,庫服務(wù)器數(shù)據(jù)庫304可以使用各種存儲裝置、例如磁帶驅(qū)動器、光存儲單元或者磁盤驅(qū)動器。為了幫助訪問控制,庫服務(wù)器數(shù)據(jù)庫304可以使用一組表,例如ACL表306和用戶簡檔表308。ACL表306可以是指定應(yīng)用于資源或項目的安全性保護(hù)的任何數(shù)據(jù)結(jié)構(gòu)。用戶簡檔表308可以是指定被授予給用戶或用戶組的特權(quán)的任何數(shù)據(jù)結(jié)構(gòu)。ACL表306和用戶簡檔表308的例子參照圖4A和4B加以描述。在一些實施例中,庫服務(wù)器304可以使用一個或多個標(biāo)志如二進(jìn)制位,以表示各種ACL。例如,管理器定義或者系統(tǒng)ACL(即,可用于所有用戶的ACL)可以以“0”的二進(jìn)制值標(biāo)記。同時,用戶定義或者定制ACL可以以“1”的二進(jìn)制值標(biāo)記。現(xiàn)在將進(jìn)一步描述一些實施例中的對這些用戶定義或定制ACL的管理。例如,應(yīng)用程序300的管理員可以向一個或多個用戶104授予創(chuàng)建他們自己的定制ACL的能力。當(dāng)然,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識到,用戶可以缺省地被授予創(chuàng)建他們自己的ACL而無需管理員或其它許可的能力。在一些實施例中,一個或多個用戶104可以被授予對ACL的各種特權(quán)。例如,一個或多個用戶104可以被授予ACL的所有權(quán)。用戶的特權(quán)可以在用戶簡檔表308中表明,在下文中其可以被稱作用戶的一般特權(quán)集。另外,ACL表306可以表明哪些用戶104可以直接地或者通過組規(guī)則改變或刪除ACL。如果用戶具有ACL的所有權(quán),則該用戶可以將該ACL分配給項目或項目類型。另外,可以向一個或多個用戶104授予ACL的特定有限特權(quán),例如向資源或項目分配ACL的特權(quán)或權(quán)限。此外,通過在用戶簡檔表308中配置用戶的一般特權(quán)集,可以將該特權(quán)授予給用戶。另外,可以直接地或者通過組規(guī)則在ACL表306中針對用戶表示該特權(quán)。在一些實施例中,可以如同對項目或資源的其它特權(quán)一樣處理上面對ACL的特權(quán),以便例如受益于先前在應(yīng)用程序300或者訪問控制模塊302中實現(xiàn)的現(xiàn)有邏輯。另外,可以維持由應(yīng)用程序300施行的其它訪問規(guī)則。例如,如果除了ACL的所有權(quán)或分配權(quán)限之外,用戶還具有更一般的對項目的訪問權(quán),例如管理員權(quán)限,則該用戶可以被授予每一個用戶定義的ACL中的所有權(quán),或者能夠分配每一個用戶定義的ACL。為了幫助用戶管理ACL,應(yīng)用程序300可以結(jié)合訪問控制模塊302工作,以便提供一個或多個ACL接口。例如,應(yīng)用程序300可以與客戶端202接口,以提供所有ACL的列表、僅僅系統(tǒng)ACL的列表、用戶所擁有的所有ACL的列表、用戶可以分配的ACL的列表。另外,應(yīng)用程序300可以允許用戶按照名稱或某其它標(biāo)準(zhǔn)搜索和檢索ACL。應(yīng)用程序300可以允許基于用戶特權(quán)或顯示名稱而顯示ACL。例如,應(yīng)用程序300可以提供列出用戶具有“刪除”授權(quán)的所有ACL的接口。同樣地,客戶端202可以允許用戶104創(chuàng)建、列出、分配和修改他們的用戶定義ACL??梢詫⒁粋€或多個對話框從應(yīng)用程序300提供給客戶端202,以便幫助搜索和列出用戶或用戶組。在一些實施例中,這些列表可以局限于特定域、用戶或用戶組。當(dāng)用戶創(chuàng)建用戶定義的ACL時,可以由應(yīng)用程序300提示用戶提供ACL的名稱或標(biāo)識符。可選地,應(yīng)用程序300可以自動地生成ACL的名稱。例如,在一些實施例中,應(yīng)用程序300可以生成具有一個或多個數(shù)字的代碼。另外,用戶可以為用戶定義的ACL提供描述或顯示名稱。為了幫助創(chuàng)建用戶定義的ACL,訪問控制模塊302可以包括各種預(yù)定義的特權(quán)集(或者特權(quán)組),其包括新用戶ACL特權(quán)。在這些實施例中,特權(quán)集可以由后安裝(post-install)程序創(chuàng)建,并且還可以例如由應(yīng)用程序300的管理員在以后修改?,F(xiàn)在將參照圖4A和4B描述用來施行這些訪問控制的表的例子。圖4A示出了可以由本發(fā)明的實施例使用的用戶簡檔表308的一個例子。正如所述,用戶簡檔表308可以表示授予給用戶的各種特權(quán)。如圖所示,用戶簡檔表308可以包括用戶標(biāo)識符列400和特權(quán)集列402。用戶標(biāo)識符列400包括唯一標(biāo)識應(yīng)用程序300的每個用戶或用戶組的信息。用戶標(biāo)識符可以采取各種格式例如數(shù)字或字母數(shù)字。例如,用戶簡檔表308被示出為在用戶標(biāo)識符列400中具有“用戶1”和“用戶2”。另外,用戶標(biāo)識符可以由庫服務(wù)器204自動分配。特權(quán)集列402包括表示授予給用戶的特權(quán)的信息。這些特權(quán)可以采用各種格式例如數(shù)字或字母數(shù)字代碼表示。例如,“用戶ACL擁有者”和“用戶ACL分配”可以用來分別表示用戶是否具有所有權(quán)或分配特權(quán)。如圖4A所示,用戶1被授予了“所有權(quán)”特權(quán),并且用戶2被授予了“分配”特權(quán)。圖4B示出了可以由本發(fā)明的實施例使用的訪問控制列表表306的一個例子。正如所述,ACL表306可以用來表示用于保護(hù)項目或資源的各種特權(quán)和安全性措施。在一些實施例中,ACL表306可以包括ACL標(biāo)識符列404、資源標(biāo)識符列406、用戶標(biāo)識符列408、以及特權(quán)集列408。ACL標(biāo)識符列404包括標(biāo)識特定ACL的信息。這些標(biāo)識符可以由用戶例如創(chuàng)建了ACL的用戶或者ACL的擁有者之一確定,或者可以由系統(tǒng)200或庫服務(wù)器204自動生成。ACL的標(biāo)識符可以采取各種格式,例如數(shù)字或字母數(shù)字。例如,如圖4B所示,表306被示出為在ACL標(biāo)識符列404中具有“ACL1”和“ACL2”。資源標(biāo)識符列406包括標(biāo)識一個或多個資源或項目的信息。這些標(biāo)識符也可以由用戶例如創(chuàng)建了資源的用戶確定,或者可以由系統(tǒng)200或庫服務(wù)器204自動生成。資源或項目的標(biāo)識符可以采取各種格式,例如數(shù)字或者字母數(shù)字。例如,如圖4B所示,表306被示出為在列406中具有“A1234”、“A1235”和“B1457”作為資源的標(biāo)識符。用戶標(biāo)識符列408包括標(biāo)識要與ACL相關(guān)聯(lián)的一個或多個用戶的信息。這些標(biāo)識符可以由用戶自己確定,或者可以由系統(tǒng)200或庫服務(wù)器204自動生成。用戶的標(biāo)識符可以采取各種格式,例如數(shù)字或者字母數(shù)字。例如,如圖4B所示,表306被示出為具有“用戶1”和“用戶2”作為在列408中標(biāo)識的示例性用戶??蛇x地,用戶標(biāo)識符列408可以標(biāo)識用戶、用戶組、或者特定用戶角色的一種或多種類型。特權(quán)集列410包括表示針對特定ACL分配給用戶的一個或多個特權(quán)的信息。這些特權(quán)可以采用各種格式例如數(shù)字或字母數(shù)字代碼表示。例如,如圖4B所示,針對“ACL1”向“用戶1”分配了“用戶ACL所有權(quán)”作為特權(quán)。另外,還可以針對“ACL1”向“用戶2”分配“用戶ACL分配”作為特權(quán)。這些特權(quán)還可以基于應(yīng)用程序300和訪問控制模塊302的配置而引用其它操作或者甚至是其它特權(quán)。雖然圖4B以單個特權(quán)示出,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識到,可以向用戶分配多個特權(quán)。例如,還可以針對“ACL1”向“用戶2”分配其它特權(quán),例如“讀取”特權(quán)。另外,特權(quán)可以一起被編組為由應(yīng)用程序300的用戶或管理員定義或者由應(yīng)用程序300自動提供的一個或多個集合。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識到,表306和308只是可以由本發(fā)明的實施例使用的示例性數(shù)據(jù)結(jié)構(gòu)。任何類型的數(shù)據(jù)結(jié)構(gòu)可以由本發(fā)明的實施例使用,以允許靈活的用戶定義ACL所有權(quán)及其分配。下面將描述用于用戶定義ACL的創(chuàng)建、所有權(quán)和分配的示例性處理流程。圖5示出了根據(jù)本發(fā)明原理的用于創(chuàng)建訪問控制列表的處理流程。在步驟505,第一用戶向應(yīng)用程序300提供用于創(chuàng)建ACL的信息。例如,用戶104之一可以操作客戶端202,并且與庫服務(wù)器204接口,以便指定用于ACL的各種參數(shù)。如上所述,在一些實施例中,庫服務(wù)器204的應(yīng)用程序300可以提供一個或多個接口,其幫助用戶創(chuàng)建或修改ACL。這些接口可以使用公知的圖形用戶接口,如窗口、下拉菜單和對話框。例如,應(yīng)用程序300可以提供已被用戶訪問的ACL例如在當(dāng)前會話內(nèi)已被增加、更新或刪除的那些ACL的日志或列表。由用戶指定的參數(shù)可以包括感興趣的資源或項目、要被分配的特權(quán)或權(quán)限、誰可以訪問資源或項目、以及向這些用戶授予了什么級別的訪問權(quán)。用戶還可以提供其它信息,例如ACL的名稱以及ACL的簡短描述??蛇x地,用戶可以從其它ACL例如由該用戶授權(quán)的ACL,或者從用戶具有特權(quán)的那些ACL,檢索信息。然后,處理流到步驟510。在步驟510,創(chuàng)建ACL的用戶還可以向另一個用戶授予一個或多個特權(quán)。例如,可以由應(yīng)用程序300在表306和308中自動地將創(chuàng)建ACL的用戶指定為該ACL的擁有者。依次地,該用戶可以向其他用戶授予對ACL的特權(quán)。例如,ACL的擁有者可以指定其他用戶作為ACL的擁有者,使得他們也可以讀取、修改或刪除該ACL。另外,ACL的擁有者可以允許其他用戶向他們選擇的資源或項目分配ACL。其它特權(quán)和權(quán)限可以被授予,例如讀取訪問。例如,可以允許用戶限制對ACL的訪問;查看,但是不改變ACL;讀取和創(chuàng)建ACL的新版本;讀取和修改ACL;以及刪除ACL。此外,應(yīng)用程序300可以提供一個或多個缺省特權(quán)集。應(yīng)用程序300可被配置成控制用戶可以如何指定對ACL的特權(quán)。例如,只能允許ACL的擁有者指定對ACL的特權(quán)??蛇x地,用戶可以基于他們的角色或者他們是成員的編組而繼承對ACL的特權(quán)。本發(fā)明的實施例可以支持各種指定對ACL的特權(quán)的規(guī)則和配置。在一些實施例中,可以通過應(yīng)用程序300經(jīng)由由庫服務(wù)器204提供的接口授予或修改對ACL的特權(quán)。如上所述,該接口可以使用公知的圖形用戶接口特性,以確定針對ACL向誰授予了哪些特權(quán)。依次地,應(yīng)用程序300然后可以修改表306和308中的信息,存儲該信息。然后,處理流到步驟515。在步驟515,已被授予了特權(quán)的用戶可以使用對應(yīng)的一個或多個ACL。例如,庫服務(wù)器204可以參考表306和308,以控制誰可以訪問和使用ACL。正如所述,在圖4A和4B所示的例子中,“用戶1”是“ACL1”的擁有者,并且“用戶2”已被授予了向資源或項目分配“ACL1”的特權(quán)。在一些實施例中,庫服務(wù)器204可以首先檢查用戶簡檔表308,以確定“用戶2”是否具有ACL分配權(quán)限作為其一般特權(quán)集的一部分。然后,庫服務(wù)器204可以檢查ACL表306,以確定“用戶2”對哪個特定ACL已被授予了特權(quán)。應(yīng)用程序300或庫服務(wù)器204還可以施行確定如何授予對ACL的特權(quán)的各種規(guī)則。例如,應(yīng)用程序300可以基于用戶的角色、域或者他們所請求的操作的上下文而限制用戶的特權(quán)。ACL的特權(quán)本身也可以取決于ACL的角色,或者基于從涉及資源或項目的另一個事務(wù)繼承特權(quán)。用于授予和施行對ACL的特權(quán)的其它類型的策略也可以由本發(fā)明的實施例支持。圖6示出了根據(jù)本發(fā)明原理的用于分配訪問控制列表的處理流程。具體地說,示出了用于向受保護(hù)資源如文檔或其它類型的文件分配ACL的處理流程。在本例中,假定用戶104中的第一用戶先前創(chuàng)建了ACL。在步驟605,應(yīng)用程序300從另外用戶(例如,除了第一用戶之外的用戶)接收向受保護(hù)資源分配訪問控制列表的請求。例如,該另外用戶可以操作客戶端202,以與庫服務(wù)器204接口,以便選擇一個或多個ACL。在一些實施例中,該另外用戶可以基于各種標(biāo)準(zhǔn)如ACL名稱、ACL擁有者、描述中的關(guān)鍵字等而搜索ACL。然后,庫服務(wù)器204可以在庫服務(wù)器數(shù)據(jù)庫304中進(jìn)行搜索,以查找與該另外用戶的標(biāo)準(zhǔn)相匹配的一個或多個ACL。然后,可以通過應(yīng)用程序300使用一個或多個接口呈現(xiàn)相匹配的ACL。庫服務(wù)器204還可以被配置成限制向該另外用戶呈現(xiàn)的ACL。例如,訪問控制模塊302可以實現(xiàn)控制如何呈現(xiàn)ACL的一個或多個策略。訪問控制模塊302可以參考用戶簡檔表308和ACL表306或兩者,以確定是否可以向特定用戶呈現(xiàn)ACL。具體地說,訪問控制模塊302可以分別檢查在這些表的特權(quán)集列402或特權(quán)列410中表示的特權(quán)。訪問控制模塊302還可以例如由應(yīng)用程序300的管理員提供各種安全性策略,其控制如何呈現(xiàn)和管理ACL。然后,該另外用戶可以選擇所呈現(xiàn)的ACL中的一個或多個。另外,該另外用戶可以指定要向其分配所選ACL的一個或多個項目或資源。然后,應(yīng)用程序300的處理流到步驟610。在步驟610,訪問控制模塊302確定已經(jīng)從第一用戶授予給該另外用戶的特權(quán)。具體地說,訪問控制模塊302可以檢查用戶簡檔表308,以確定該另外用戶如“用戶2”是否被授予了分配權(quán)限作為其特權(quán)的一部分。在一些實施例中,訪問控制模塊302還可以檢查ACL表306,以確定該另外用戶是否對所選ACL已被特定授予了特權(quán)。當(dāng)然,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識到,應(yīng)用程序300可以使用各種其它技術(shù),例如查詢庫服務(wù)器數(shù)據(jù)庫304中的一個或多個其它表(未示出),確定授予給用戶的特權(quán)。例如,如圖4A和4B所示,“用戶2”實際上已被授予了對“ACL1”的分配權(quán)限。因此,在本例中,訪問控制模塊302將基于用戶簡檔表308和ACL表306中的信息而確定“用戶2”已被授予了對“ACL1”的特權(quán)。然后,訪問控制模塊302可以向應(yīng)用程序300通知授予給該用戶的特權(quán)。然后,處理流到步驟615。在步驟615,應(yīng)用程序300準(zhǔn)許該另外用戶基于他的特權(quán)而向受保護(hù)資源分配ACL。例如,應(yīng)用程序300可以從該另外用戶接收用于受保護(hù)資源的標(biāo)識符,然后向ACL表306寫入該信息。如圖4B所示,應(yīng)用程序300準(zhǔn)許了“用戶2”向資源“A1235”和“B1457”分配“ACL1”。另外,應(yīng)用程序300可以與資源管理器206通信,以表示其資源中的一個或多個已被分配了ACL。依次地,資源管理器206可以基于包括在ACL中的安全性措施而實現(xiàn)對這些資源的一個或多個保護(hù)。然后,應(yīng)用程序300的處理完成。雖然本發(fā)明的實施例被描述為與存儲在存儲器和其它存儲介質(zhì)中的程序相關(guān)聯(lián),但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些方面也可以存儲在其它類型的計算機(jī)可讀介質(zhì)上或者從其讀取,其中這些計算機(jī)可讀介質(zhì)例如為次級存儲設(shè)備如硬盤、軟盤或CD-ROM;來自因特網(wǎng)的載波;或者RAM或ROM的其它形式。從而,本發(fā)明不局限于上述實施例,而是由所附權(quán)利要求按照其完全等價范圍定義。此外,根據(jù)本發(fā)明實施例的方法例如圖5和6所示的方法可以方便地使用程序模塊來實現(xiàn)。在被執(zhí)行時,這些程序模塊可以執(zhí)行這里公開的步驟和特征,包括參照圖5和6的示例性流程圖公開的步驟和特征。對于實現(xiàn)上述各種過程,沒有指示特定編程語言,因為可以認(rèn)為,上面描述且在附圖中示出的操作、級和過程已被充分地公開,從而允許本領(lǐng)域的普通技術(shù)人員實施本發(fā)明。而且,存在很多計算機(jī)和操作系統(tǒng)可以用于實施本發(fā)明的實施例。本發(fā)明的上述特征和方面可以在各種環(huán)境中實現(xiàn)。這些環(huán)境和相關(guān)應(yīng)用可以被具體構(gòu)造成用于執(zhí)行本發(fā)明的各種處理和操作,或者它們可以包括由程序代碼選擇性地激活或再配置以提供該功能性的通用計算機(jī)或計算平臺。這里公開的處理不是固有地與任何特定計算機(jī)或其它設(shè)備相關(guān),并且這些處理的各方面可以由任何適當(dāng)?shù)挠布?、軟件?或固件的組合實現(xiàn)。例如,各種通用機(jī)器可以與根據(jù)本發(fā)明的教導(dǎo)而編寫的程序一起使用,或者可能更方便的是,構(gòu)造專用設(shè)備或系統(tǒng)以執(zhí)行所需方法和技術(shù)。本發(fā)明的實施例還涉及計算機(jī)可讀介質(zhì),其包括用于基于本發(fā)明實施例的方法和處理而執(zhí)行各種計算機(jī)實現(xiàn)的操作的程序指令或程序代碼。這些程序指令可以是為了本發(fā)明的目的而特定設(shè)計和構(gòu)造的程序指令,或者它們可以是公知且可用于計算機(jī)軟件領(lǐng)域的技術(shù)人員的類型。程序指令的例子包括例如由編譯器產(chǎn)生的機(jī)器代碼、以及包含可以使用解釋器由計算機(jī)執(zhí)行的高級代碼的文件。通過考慮這里公開的本發(fā)明的說明書和實施,本發(fā)明的其它實施例對于本領(lǐng)域的技術(shù)人員將是清楚的。說明書和例子旨在被認(rèn)為僅是示例性的。權(quán)利要求1.一種創(chuàng)建可以由多個用戶使用的訪問控制列表的方法,所述方法包括從第一用戶接收用于訪問控制列表的信息;從第一用戶接收已被授予給第二用戶的針對該訪問控制列表的特權(quán)集;以及基于由第一用戶授予的該特權(quán)集,準(zhǔn)許第二用戶使用該訪問控制列表。2.如權(quán)利要求1所述的方法,還包括自動地命名該訪問控制列表。3.如權(quán)利要求1所述的方法,其中接收針對該訪問控制列表的特權(quán)集包括接收表示第二用戶已被授予了對該訪問控制列表的所有權(quán)權(quán)限的信息。4.如權(quán)利要求1所述的方法,其中接收針對該訪問控制列表的特權(quán)集包括接收表示第二用戶已被授予了向資源分配該訪問控制列表的權(quán)限的信息。5.一種用于創(chuàng)建可以由多個用戶使用的訪問控制列表的計算機(jī)系統(tǒng),所述設(shè)備包括存儲器,具有程序指令;以及處理器,響應(yīng)于所述程序指令,被配置成從第一用戶接收用于訪問控制列表的信息;從第一用戶接收已被授予給第二用戶的針對該訪問控制列表的特權(quán)集;以及基于由第一用戶授予的該特權(quán)集,準(zhǔn)許第二用戶使用該訪問控制列表。6.一種包含在計算機(jī)可用介質(zhì)上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品用于創(chuàng)建可以由多個用戶使用的訪問控制列表,其包括用于從第一用戶接收用于訪問控制列表的信息的裝置;用于從第一用戶接收已被授予給第二用戶的針對該訪問控制列表的特權(quán)集的裝置;以及用于基于由第一用戶授予的該特權(quán)集而準(zhǔn)許第二用戶使用該訪問控制列表的裝置。7.一種在其上存儲了指令的計算機(jī)可讀介質(zhì),在被執(zhí)行時,所述指令執(zhí)行創(chuàng)建可以由多個用戶使用的訪問控制列表的方法中的步驟,所述步驟包括從第一用戶接收用于訪問控制列表的信息;從第一用戶接收已被授予給第二用戶的針對該訪問控制列表的特權(quán)集;以及基于由第一用戶授予的該特權(quán)集,準(zhǔn)許第二用戶使用該訪問控制列表。8.一種向受保護(hù)資源分配訪問控制列表的方法,其中所述訪問控制列表已經(jīng)由第一用戶創(chuàng)建,并且準(zhǔn)許至少一個另外用戶使用該訪問控制列表,所述方法包括接收來自該至少一個另外用戶的向該受保護(hù)資源分配該訪問控制列表的請求;確定已經(jīng)從第一用戶授予給該至少一個另外用戶的針對該訪問控制列表的特權(quán)集;以及基于該特權(quán)集,準(zhǔn)許該至少一個另外用戶向該受保護(hù)資源分配該訪問控制列表。9.如權(quán)利要求8所述的方法,其中接收來自該至少一個另外用戶的請求包括接收修改該訪問控制列表的請求。10.如權(quán)利要求8所述的方法,其中確定已經(jīng)從第一用戶授予給該至少一個另外用戶的特權(quán)集包括確定第一用戶是否向該至少一個另外用戶授予了該訪問控制列表的所有權(quán)權(quán)限。11.如權(quán)利要求10所述的方法,其中在被授予了所有權(quán)權(quán)限時,準(zhǔn)許該至少一個另外用戶修改該訪問控制列表。12.如權(quán)利要求10所述的方法,其中在被授予了所有權(quán)權(quán)限時,準(zhǔn)許該至少一個另外用戶刪除該訪問控制列表。13.如權(quán)利要求8所述的方法,其中確定已經(jīng)從第一用戶授予給該至少一個另外用戶的特權(quán)集包括確定第一用戶是否向該至少一個另外用戶授予了向受保護(hù)資源分配該訪問控制列表的權(quán)限。14.如權(quán)利要求13所述的方法,其中限制該至少一個另外用戶修改該訪問控制列表,但是準(zhǔn)許其向該受保護(hù)資源分配該訪問控制列表。15.如權(quán)利要求8所述的方法,還包括向該至少一個另外用戶提供表示對其向該至少一個另外用戶授予了特權(quán)的訪問控制列表的集合的信息。16.如權(quán)利要求15所述的方法,其中向該至少一個另外用戶提供表示對其向該至少一個另外用戶授予了特權(quán)的訪問控制列表的集合的信息包括提供與由該至少一個另外用戶指定的標(biāo)準(zhǔn)相匹配的訪問控制列表的名稱。17.一種用于向受保護(hù)資源分配訪問控制列表的計算機(jī)系統(tǒng),其中所述訪問控制列表已經(jīng)由第一用戶創(chuàng)建,并且準(zhǔn)許至少一個另外用戶使用該訪問控制列表,所述系統(tǒng)包括存儲器,具有程序指令;以及處理器,響應(yīng)于所述程序指令,被配置成接收來自該至少一個另外用戶的向該受保護(hù)資源分配該訪問控制列表的請求;確定已經(jīng)從第一用戶授予給該至少一個另外用戶的針對該訪問控制列表的特權(quán)集;以及基于該特權(quán)集,準(zhǔn)許該至少一個另外用戶向該受保護(hù)資源分配該訪問控制列表。18.如權(quán)利要求17所述的計算機(jī)系統(tǒng),其中用于接收來自該至少一個另外用戶的請求的裝置包括用于接收修改該訪問控制列表的請求的裝置。19.如權(quán)利要求17所述的計算機(jī)系統(tǒng),其中用于確定已經(jīng)從第一用戶授予給該至少一個另外用戶的特權(quán)集的裝置包括用于確定第一用戶是否向該至少一個另外用戶授予了該訪問控制列表的所有權(quán)權(quán)限的裝置。20.如權(quán)利要求17所述的計算機(jī)系統(tǒng),其中用于確定已經(jīng)從第一用戶授予給該至少一個另外用戶的特權(quán)集的裝置包括用于確定第一用戶是否向該至少一個另外用戶授予了向受保護(hù)資源分配該訪問控制列表的權(quán)限的裝置。21.如權(quán)利要求17所述的計算機(jī)系統(tǒng),還包括用于向該至少一個另外用戶提供表示對其向該至少一個另外用戶授予了特權(quán)的訪問控制列表的集合的信息的裝置。22.如權(quán)利要求21所述的計算機(jī)系統(tǒng),其中用于向該至少一個另外用戶提供表示對其向該至少一個另外用戶授予了特權(quán)的訪問控制列表的集合的信息的裝置包括用于提供與由該至少一個另外用戶指定的標(biāo)準(zhǔn)相匹配的訪問控制列表的名稱的裝置。23.一種包含在計算機(jī)可用介質(zhì)上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品用于向受保護(hù)資源分配訪問控制列表,其中所述訪問控制列表已經(jīng)由第一用戶創(chuàng)建,并且準(zhǔn)許至少一個另外用戶使用該訪問控制列表,所述計算機(jī)程序產(chǎn)品包括用于接收來自該至少一個另外用戶的向該受保護(hù)資源分配該訪問控制列表的請求的裝置;用于確定已經(jīng)從第一用戶授予給該至少一個另外用戶的針對該訪問控制列表的特權(quán)集的裝置;以及用于基于該特權(quán)集而準(zhǔn)許該至少一個另外用戶向該受保護(hù)資源分配該訪問控制列表的裝置。24.一種在其上存儲了指令的計算機(jī)可讀介質(zhì),在被執(zhí)行時,所述指令執(zhí)行創(chuàng)建向受保護(hù)資源分配訪問控制列表的方法中的步驟,其中所述訪問控制列表已經(jīng)由第一用戶創(chuàng)建,并且準(zhǔn)許至少一個另外用戶使用該訪問控制列表,所述步驟包括接收來自該至少一個另外用戶的向該受保護(hù)資源分配該訪問控制列表的請求;確定已經(jīng)從第一用戶授予給該至少一個另外用戶的針對該訪問控制列表的特權(quán)集;以及基于該特權(quán)集,準(zhǔn)許該至少一個另外用戶向該受保護(hù)資源分配該訪問控制列表。全文摘要本發(fā)明的實施例支持靈活的訪問控制設(shè)計,其包括靈活的訪問控制列表(ACL)所有權(quán)及其分配。ACL可以被分配給一個或多個資源或項目、或者資源或項目的類型。ACL的創(chuàng)建者或擁有者可以向他人授予特權(quán),使得他們可以修改或分配該ACL。每個ACL可以具有一個或多個擁有者,即可以對該ACL施加控制的用戶。ACL的任何擁有者可以向其他用戶指定特定特權(quán)。然后,這些其他用戶可以基于授予給他們的特權(quán)而使用該ACL。文檔編號G06F21/00GK1770169SQ20051011869公開日2006年5月10日申請日期2005年11月4日優(yōu)先權(quán)日2004年11月5日發(fā)明者肯尼斯·C·尼爾森,羅德爾·馬里萊尼·A·諾隆哈申請人:國際商業(yè)機(jī)器公司