專利名稱::基于區(qū)域的安全性的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及計算機系統(tǒng),尤其涉及為基于對象子集在該子集的區(qū)域描述符上提供安全性的系統(tǒng)和方法,以便減少數(shù)據(jù)傳播以及經(jīng)典對象繼承分層結(jié)構(gòu)的存儲需求。
背景技術(shù):
:現(xiàn)代商業(yè)數(shù)據(jù)庫設(shè)計包括涉及對如何存儲、管理和操縱大量數(shù)據(jù)的眾多復(fù)雜數(shù)據(jù)的考慮。這樣的數(shù)據(jù)通常包括諸如提供各個對象之間的繼承屬性的對象樹中的與其它數(shù)據(jù)的錯綜復(fù)雜的關(guān)系。這些類型的關(guān)系通常使對數(shù)據(jù)庫以及管理這樣的數(shù)據(jù)的組件的有效設(shè)計變得復(fù)雜。例如,數(shù)據(jù)庫設(shè)計過程的一個方面在于理解關(guān)系數(shù)據(jù)庫管理系統(tǒng)存儲數(shù)據(jù)的方式。為了高效且準確地向用戶提供信息,數(shù)據(jù)庫程序需要訪問關(guān)于存儲在分開的表中的不同主題的事實(數(shù)據(jù))。例如,一個表可能僅存儲關(guān)于雇員的事實,而另一表可能僅存儲關(guān)于銷售的事實,而其它表用于某些其它的公司事務(wù)。當(dāng)使用數(shù)據(jù)時,這些事實然后被自動組合并按照眾多不同的方式被呈現(xiàn)。例如,用戶可打印組合了關(guān)于雇員的事實和關(guān)于銷售的事實的報告。一般而言,為設(shè)計數(shù)據(jù)庫,按某種要求(諸如庫中的單獨主題)將信息分解,然后數(shù)據(jù)庫程序確定主題如何聯(lián)系。這些程序通常包括使用諸如結(jié)構(gòu)化查詢語言(SQL)的常見數(shù)據(jù)庫語言的關(guān)系數(shù)據(jù)庫查詢。在這樣的語言可被應(yīng)用于數(shù)據(jù)之前,通常作出關(guān)于哪些類型的數(shù)據(jù)是重要的以及這樣的數(shù)據(jù)應(yīng)如何組織的若干決策。例如,這些決策可包括確定數(shù)據(jù)庫的范圍,以決定其中存儲哪些數(shù)據(jù)。然后確定將信息分成單獨主題所需的表,諸如"雇員"或"定單"。然后每一主題將是數(shù)據(jù)庫中的一個表。其它方面包括確定決定在每一表中存儲何種信息所需的各個字段。表中信息的每一目錄被稱為字段,且被顯示為表中的一列。例如,雇員表中的一個字段可以是姓;另一字段可以是雇傭日期。另一考慮是確定諸如決定一個表中的數(shù)據(jù)如何與其它表中的數(shù)據(jù)聯(lián)系的關(guān)系。設(shè)計者通常按需向表添加字段,或創(chuàng)建新表來說明關(guān)系。當(dāng)設(shè)計數(shù)據(jù)庫時可能存在遇到的若干常見的陷阱。這些問題可引起數(shù)據(jù)更難以使用和維護。這些可包括使一個表具有不是全部都與同一主題有聯(lián)系的大量字段。例如,一個表可包含關(guān)于顧客的字段以及包含銷售信息的字段。而且,如果每一表僅包含關(guān)于一個主題的數(shù)據(jù),這往往是更高效的。在其它情況中,當(dāng)在眾多記錄中有意向字段留下空白時產(chǎn)生開支,因為它們并不適用于這些記錄。這通常暗示,這些字段屬于另一表。當(dāng)存在其中眾多表具有相同字段的大量表時,冗余是另一個問題。例如,當(dāng)分開一月份銷售和二月份銷售的表,或本地顧客和遠程顧客的表時,存在對同一類型的信息的冗余存儲。因此,一種技術(shù)是在一個表中合并關(guān)于單個主題的所有信息。除如何設(shè)置和設(shè)計數(shù)據(jù)庫的表和字段的復(fù)雜性以外,必須進行其它考慮。這些包括應(yīng)如何向各個表和字段提供數(shù)據(jù)安全性(例如,諸如誰和什么可訪問文件的安全性)。這包括如何向諸如分層對象等存儲在數(shù)據(jù)庫中的復(fù)雜結(jié)構(gòu)提供安全性。傳統(tǒng)地,在這樣的對象的繼承分層結(jié)構(gòu)中,安全性考慮被傳播,其中如果分層結(jié)構(gòu)中的項目之一被改變,則該結(jié)構(gòu)中的每一項目需要被更新。然而,存在利用關(guān)系數(shù)據(jù)庫的表的各行來存儲分層對象的任何實現(xiàn)所面臨的常見問題,就是如何設(shè)置關(guān)于每一對象的安全性信息或數(shù)據(jù),并基于繼承模型將安全性數(shù)據(jù)填充于其孩子對象。發(fā)明概述以下呈現(xiàn)了本發(fā)明的簡化概述以便提供對本發(fā)明的某些方面的基本理解。該概述不是本發(fā)明的廣泛的概觀。它不旨在標識本發(fā)明的重要/關(guān)鍵的元素,也不旨在描繪本發(fā)明的范圍。其唯一目的是以簡化形式呈現(xiàn)本發(fā)明的某些概念作為稍后呈現(xiàn)的更詳細描述的序言。本發(fā)明涉及向在對象之間具有分層關(guān)系的多個數(shù)據(jù)庫對象提供基于區(qū)域的安全性的系統(tǒng)和方法。提供將安全性信息映射到分層結(jié)構(gòu)中存在的對象的子集以便創(chuàng)建獨立于分層結(jié)構(gòu)的一個或多個安全區(qū)的區(qū)域組件。這允許區(qū)域或區(qū)中存在的對象共享安全性屬性,這將減少數(shù)據(jù)庫處理需求(例如,較少的節(jié)點要更新安全性數(shù)據(jù))。-般而言,經(jīng)典數(shù)據(jù)庫體系結(jié)構(gòu)通常利用關(guān)系數(shù)據(jù)庫表的各行來存儲分層對象,這也使得要在每一對象上設(shè)置相關(guān)的安全性描述符,以及基于繼承模型對各個孩子對象填充安全性描述符。這會導(dǎo)致用于每一對象更新的日益增長的處理時間量,而通過引入基于區(qū)域的考慮可減少處理時間。區(qū)域可以是共享相同或相似安全性描述符的對象的集合(不必位于一鄰接樹中)。當(dāng)更新了對象上的安全性描述符時,對象所屬的區(qū)域可分裂或折疊。例如,如果從該改變得到任何孩子對象上的不同的安全性描述符,則區(qū)域可分裂;而如果改變產(chǎn)生與其它區(qū)域相同的安全性描述符,則該區(qū)域可折疊入另一區(qū)域。與每一對象直接擁有其自己的安全性描述符相反,一區(qū)域擁有該安全性描述符;從而顯著地減少了當(dāng)改變了一對象上的安全性描述符而可能影響其它對象上的安全性描述符時,對象更新的次數(shù)。一般而言,傳統(tǒng)上將區(qū)域定義為分層對象模型中的對象的子樹。在本發(fā)明的情況中,區(qū)域被定義為共享相同安全性描述符的一組對象,借此共享相同的安全性描述符的那些對象不必位于同一子樹下。這種間接性允許管理對象安全性描述符的有效處理。因此,基于區(qū)域的安全性實質(zhì)上將對象域變換到安全性描述符域,并在安全性描述符域上直接地且獨立于分層結(jié)構(gòu)地執(zhí)行安全性描述符操作,這減少了總的數(shù)據(jù)庫處理。為了完成前述和相關(guān)目的,本發(fā)明的某些說明性的方面在此處將結(jié)合以下描述符和附圖被描述。這些方面指示可實現(xiàn)本發(fā)明的各種方式,它們均旨在由本發(fā)明覆蓋。當(dāng)結(jié)合附圖考慮閱讀本發(fā)明的以下詳細描述時,本發(fā)明的其它優(yōu)點和新穎的特征將是顯而易見的。附圖簡述圖1是根據(jù)本發(fā)明的一方面示出對象安全性系統(tǒng)的示意框圖。圖2是根據(jù)本發(fā)明的一方面示出示例安全性域變換的示意圖。圖3根據(jù)本發(fā)明的一方面示出了替換安全性域變換。圖4根據(jù)本發(fā)明的一方面示出了示例安全性接口。圖5根據(jù)本發(fā)明的一方面示出了區(qū)域組件處理。圖6根據(jù)本發(fā)明的一方面示出了示例區(qū)域處理算法。圖7根據(jù)本發(fā)明的一方面示出了安全區(qū)域處理。圖8是根據(jù)本發(fā)明的一方面示出合適的操作環(huán)境的示意框圖。圖9是本發(fā)明可與之交互的示例計算環(huán)境的示意框圖。發(fā)明的詳細描述本發(fā)明涉及向具有分層關(guān)系的數(shù)據(jù)庫對象提供基于區(qū)域的安全性的系統(tǒng)和方法。與為每一對象更新單獨的安全性描述符相反,本發(fā)明引入了區(qū)域的概念,借此從給定對象與區(qū)域而非分層結(jié)構(gòu)的關(guān)聯(lián)得到該給定對象的安全性。這與需要各個對象描述并在繼承分層結(jié)構(gòu)之間置入安全性的經(jīng)典體系結(jié)構(gòu)相反。以此方式,數(shù)據(jù)庫處理和存儲可被保存,因為眾多對象可能共享可在各個區(qū)域的更全局的范圍上定義的類似的安全屬性。在一個方面中,提供使數(shù)據(jù)庫安全性和管理更容易的系統(tǒng)。該系統(tǒng)包括存儲在對象之間具有分層關(guān)系的多個對象的數(shù)據(jù)庫組件。區(qū)域組件為對象子集定義安全區(qū),并將安全性數(shù)據(jù)映射到該子集,其中安全區(qū)獨立于對象之間的分層關(guān)系、并與其去耦、或分離。如本申請中所使用的,術(shù)語"組件"、"系統(tǒng)"、"對象"、"區(qū)"等意指計算機-相關(guān)實體,或者是硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。例如,組件可以是,但不限于,運行在處理器上的進程、處理器、對象、可執(zhí)行代碼、執(zhí)行的線程、程序和/或計算機。作為說明,運行在服務(wù)器上的應(yīng)用程序和該服務(wù)器本身都可以是組件。一個或多個組件可以駐留在進程和/或執(zhí)行中的線程內(nèi),且組件可以位于一臺計算機上和/或分布在兩臺或多臺計算機之間。而且,這些組件可從其上存儲各種數(shù)據(jù)結(jié)構(gòu)的各種計算機可讀介質(zhì)上執(zhí)行。組件可經(jīng)由本地和/或遠程進程,諸如根據(jù)含有一個或多個數(shù)據(jù)包的信號進行通信(例如,來自一個組件的數(shù)據(jù)與本地系統(tǒng)、分布式系統(tǒng)中的另一組件和/或跨諸如因特網(wǎng)的網(wǎng)絡(luò)與其它系統(tǒng)經(jīng)由信號進行交互)。首先參考圖l,根據(jù)本發(fā)明的一方面示出了對象安全性系統(tǒng)100。系統(tǒng)100包括與區(qū)域組件120相關(guān)聯(lián)的關(guān)系數(shù)據(jù)庫110(例如,SQL或其它類型的數(shù)據(jù)庫),區(qū)域組件120定義一個或多個對象安全區(qū)130。一般而言,當(dāng)作出了對象安全性改變時,對象分層結(jié)構(gòu)的各個節(jié)點(例如,見分層結(jié)構(gòu)中參考標號140處的一個對象)不會被一個一個單獨地更新。相反,由每個130處的各個安全區(qū)的區(qū)域組件120分配安全性策略。通過將對象映射至安全區(qū)130而不是一個一個單獨地更新每一對象,數(shù)據(jù)庫IIO處的讀取操作的次數(shù)可被減少。因此,區(qū)域組件120將安全性策略映射從其中更新每一對象的繼承分層結(jié)構(gòu)變換成其中對象區(qū)共享類似的安全性策略的對象安全性域。以此方式,當(dāng)對象的安全性策略改變時,可通過僅更新安全區(qū)130縮減的子集而非更新經(jīng)典繼承分層結(jié)構(gòu)中的每一個別對象,來傳播安全性更新的較小子集。注意到,可釆用繼承概念在系統(tǒng)100中傳播策略,然而,繼承是位于安全區(qū)130之間而非樹中對象之間的常規(guī)繼承。因此,是在以安全性域而非對象域建模的組件之間存在繼承。這暗示了,各個對象之間的安全性映射是位于對象及其相關(guān)聯(lián)的區(qū)130之間而非為各個對象140顯式劃定的。因此,區(qū)域組件120向所標識的對象的區(qū)域提供安全性,且實質(zhì)上與將安全性改變傳播給分層結(jié)構(gòu)中的所有對象的常規(guī)對象分層結(jié)構(gòu)去耦、分離或被獨立。一般而言,可對數(shù)據(jù)庫110中的項目分配一(標識符)ID用作安全性描述符。數(shù)據(jù)庫包括具有被稱為SDID(安全性描述符ID)列的[Table!Item]表。該SDID是例如在隱藏的SQL系統(tǒng)表中存儲和維護的安全性描述符的唯一ID??赏ㄟ^公用視圖來展示系統(tǒng)表(例如,Sys.Security—Descriptor)。下表是關(guān)于安全性描述符可如何被插入基本對象模型或與之相關(guān)聯(lián)的簡化說明<table>tableseeoriginaldocumentpage8</column></row><table>為了有效地將安全性描述符ID(SDID)分配給對象項目,SD區(qū)域技術(shù)是部分基于對于大多數(shù)對象項目往往共享相同的安全性描述符的觀察。SD區(qū)域是共享相同或相似SDID的一組項目(它們不必如常規(guī)系統(tǒng)中的那樣為鄰接的)。一般,以上所示[Table!Item]中的所有項目可被分組到不同的SD區(qū)域??砂凑找粋€SD區(qū)域的SD可從上述安全性域中另一SD區(qū)域的SD繼承來建立SD區(qū)域的關(guān)系?;旧?,建立可與相應(yīng)的對象項目樹進行比較的SD區(qū)域樹,但它具有較少的節(jié)點,如以下關(guān)于圖2和3所示。SD區(qū)域樹因此可被用于有效地更新項目的SD。一般,當(dāng)創(chuàng)建安全性項目樹時,創(chuàng)建三個SD區(qū)域來將SD分配給樹中基本上所有的項目。因此,一個SD區(qū)域用于根項目(其中,定義了顯式的SD),另一SD區(qū)域用于各個容器項目,而最后一個SD用于非容器項目。現(xiàn)在參考圖2和3,根據(jù)本發(fā)明的一方面示出了示例安全性域變換200和300。在圖2的200處,示出了對象樹的節(jié)點,其中210處的黑節(jié)點是根項目;220處的灰節(jié)點是容器項目,而230處的白節(jié)點是非容器項目。如240處所示,當(dāng)更新項目的安全性標識符(SD)(例如,通過改變SD的所有者、分組、訪問控制列表等)時,項目所屬的SD區(qū)域可被分成三個子組或子集。安全性改變一般通過被稱為訪問控制條目(ACE)的數(shù)據(jù)來反映,該數(shù)據(jù)可以是顯式或隱式的形式。當(dāng)將顯式的ACE添加到項目的SD時,可在該項周圍創(chuàng)建新的SD區(qū)域。在這種情況中,創(chuàng)建三個了SD區(qū)域,一個用于項目(添加顯式ACE的項目)本身、一個用于其容器孩子,另一個用于其非容器孩子。參考圖3,示出了當(dāng)非傳播顯式ACE被添加到310處的項目上的SD時的更復(fù)雜情況,其中如320處所示,在項目周圍創(chuàng)建了五個新區(qū)域。在這種情況中,在330為項目本身(即添加顯式ACE的項目)創(chuàng)建了一個區(qū)域,在340處為其直接容器孩子創(chuàng)建了一個區(qū)域,在350處為其直接非容器孩子創(chuàng)建了一個區(qū)域,在360處為其非直接容器孩子創(chuàng)建了一個區(qū)域,在370處為其非直接非容器孩子創(chuàng)建了一個區(qū)域。概括圖2和3,當(dāng)項目的SD被顯式更新(不是通過繼承)時,創(chuàng)建新區(qū)域。一般而言,取決于對SD進行的更新創(chuàng)建3或5個新區(qū)域(其它數(shù)目也有可能)。如果添加了非傳播ACE,則創(chuàng)建五個SD區(qū)域,在其它情況中,一般創(chuàng)建三個SD區(qū)域。作為示例,把SD包含非繼承屬性(在大多數(shù)情況中為非繼承ACE)的項目假定為根項目。如上所述,取決于SD中顯式ACE的類型,容器類型根項目可擁有3或5個SD區(qū)域。如果非容器其SD具有顯式的屬性,它可具有其自己的SD區(qū)域。如果移除了根項目SD的所有顯式屬性,則該根項目所擁有的SD區(qū)域可被折疊到其雙親項目的SD,這將減少一個一個單獨地對象安全性更新。每一SD區(qū)域可被表示為Security—Hierachy(安全性分層結(jié)構(gòu))表中的行,諸如下例表中的一行。每一SD區(qū)域在表在中應(yīng)具有一SH行。<table>tableseeoriginaldocumentpage11</column></row><table>上表中的一行被稱為SH行,它對應(yīng)于一SD區(qū)域。該表中的行指示共享相同安全性描述符(上例中的SD1)的一組項目(可以是單個項目)。該組項目由公共的根(Itemld)、公共的類型(容器或非容器)以及范圍定義。范圍可任選來支持不同的操作系統(tǒng)安全性模型。在520處,描述了區(qū)域合并和創(chuàng)建的考慮。在此方面中,可在以下條件下創(chuàng)建一個新的SD區(qū)域1.對非容器項目進行了SD改變。在以下條件下可創(chuàng)建三個新的SD區(qū)域-1.對容器項目進行了SD改變,且2.該SD改變不包括非傳播ACE。在以下條件下可創(chuàng)建五個新的SD區(qū)域1.對容器項目進行了SD改變,且2.該SD改變包括非傳播ACE。在以下條件下可合并SD區(qū)域-1.雙親SD通過刷新(flushing)孩子SD來實施SD繼承?;蛘?.從SD中移除了顯式ACE。在530處,提供了可在關(guān)于圖6所述的以下算法中采用的各個符號。這些概念包括—Item或*——應(yīng)用該操作的當(dāng)前項目系統(tǒng)。SDId(x)或SDId—項目x上的安全性描述符的sd—id。SDId—NC(x)或SDId一NC——應(yīng)用于項目x的非容器孩子對象的SDId。SDId一C(x)或SDId一C——應(yīng)用于項目x的容器孩子對象的SDId。SDId—NC2(x)或SDId一NC2——應(yīng)用于項目x的直接非容器孩子對象的SDId。SDId—C2(x)或SDId一C2——應(yīng)用于項目x的直接容器孩子對象的SDId。SDId—NC3(x)或SDId一NC3——應(yīng)用于項目x的非直接非容器孩子對象的SDId。SDId一C3(x)或SDId—C3——應(yīng)用于項目x的非直接容器孩子對象的SDId。SHRow(x,i,j)-[Table!Security—Hierachy]表中—Rootltemld=x,—IsContainer=i,—Scope=j的行UpdateltemSD(01dSDId,NewSDId,Rootltem,IsContainer,Scope)-更新當(dāng)前SDId=OldSDId、祖先為Rootltem(根項目)、Sc叩e在NewSDId內(nèi)的類型(IsContainer)的所有項目的SDId。UpdateSDBlob(SDId)——如果其孩子的SDId未能與其SDId形成循環(huán),則更新該SDId及其孩子的安全性描述符的內(nèi)容。例如,當(dāng)對于在[Table!Security—Hierachy]表中沒有自己的行的文件項目(帶SD1)上添加保持鏈接(SDO)時,將創(chuàng)建三行(SDO,SD1,—Item,0,0)、(SD1,SDO,—Item,0,1)、(SD1,SDO,—Item,1,1)。此處為該項目的孩子項目重新使用SDO以顯著地減少[Table!Item]表中更新的次數(shù)。UpdateSDId(SDId,SDId—New)——更新[Table!Security—Hierachy]中—SDId=SDId的當(dāng)前項目的行,以便令—SDId=SDId一New。UpdateParentSDId(SDIdPar,SDWPar—New)-更新[Table!Security—Hierachy]中—ParentSDId=SDIdPar的行以便使—ParentSDId=SDIdPar—New。CreateNewSD(SDId)——從當(dāng)前SD加上所進行的改變(添加/移除ACE、添加移除/保持鏈接)來創(chuàng)建新SD。圖6根據(jù)本發(fā)明的一方面示出示例區(qū)域處理算法600。在此方面中,可采用至少三個單獨或組合的算法600來實現(xiàn)區(qū)域處理。這包括在610處設(shè)置安全性描述符;添加保持鏈接620;以及在630處的移除保持鏈接算法。對于設(shè)置安全性描述符610,有各種方式來改變對象上的安全性描述符,至少包括添加/移除可繼承顯式ACE。添加/移除應(yīng)用于該項目及其所有孩子的可繼承顯式ACE。添加/移除僅應(yīng)用于其孩子的可繼承顯式ACE。添加/移除僅應(yīng)用于該項目及其直接孩子的可繼承顯式ACE。添加/移除僅應(yīng)用于孩子容器的可繼承顯式ACE。添加/移除僅應(yīng)用于孩子對象的可繼承顯式ACE。添加/移除僅應(yīng)用于某種類型的對象的可繼承顯式ACE。改變安全性描述符的所有者。改變安全性描述符的分組。改變安全性描述符控制標志。i.停止ACE繼承ii.開始ACE繼承iii.改變僅用于該項目的其它控制標志。在620處,當(dāng)將保持鏈接添加到項目時,取決于該保持鏈接是否具有可繼承ACE以及該項目上的SD的SE—DACLE—PROTECED標志是否開啟,可以或不可以改變該項目上的安全性描述符。然而,應(yīng)更新[Table!Security一Hierachy]表。當(dāng)將保持鏈接添加到一項目上時,如果該項目還沒有指定的行,則應(yīng)在[Table!Security一Hierachy]表中添加該項目的三個新行。為了減少[Table!Item]表中的更新,可使用以下格式來創(chuàng)建這些行(SDO,SD1,*,0,0)、(SD1,SDO,*,0,1)、(SD1,SD0,*,1,1),其中SDO是保持鏈接的目標項目的老的SDId,SD1是目標項目的新的SDId。按此方案,應(yīng)僅需更新[Table!Item]表中的源項目?;谠摲桨福绻院髮@式不可繼承ACE添加到該項目,則不會在[Table!Item]表中執(zhí)行更新。在630處,可假定要移除的保持鏈接的安全性描述符的SDId為SDId一HD。在移除保持鏈接的情況中,SD區(qū)域可折疊,因此可合并[Table!Security一Hierachy]表中的各行。圖7根據(jù)本發(fā)明的一方面示出了用于數(shù)據(jù)庫對象安全性的示例安全性區(qū)域處理700。盡管,為了描述的簡單,該方法被表示和描述為一連串或多個動作,可以理解和領(lǐng)會,本發(fā)明不受動作的順序的限制,因為,根據(jù)本發(fā)明,某些動作可以按不同的順序和/或與此處所示和所描述的其它動作同時發(fā)生。例如,本領(lǐng)域的技術(shù)人員可以理解和領(lǐng)會,方法可以替換地被表示為諸如狀態(tài)圖中的一連串互相關(guān)聯(lián)的狀態(tài)或事件。而且,并非所有示出的動作都是實現(xiàn)根據(jù)本發(fā)明的方法所必需的。前進至圖7的710,考慮到經(jīng)典的對象分層結(jié)構(gòu)中的任何潛在更新,通過移除要被更新(安全性方面)的每一對象的需求,使數(shù)據(jù)庫中的各個對象的安全性描述符從該分層結(jié)構(gòu)中去耦或分離。在720處,利用了一個或多個安全性描述符來為駐留在數(shù)據(jù)庫中的對象定義對象區(qū)域。如上所述,這可包括折疊或合并來自相似或不相似對象樹中的對象安全性數(shù)據(jù),以便定義安全性區(qū)域或?qū)ο笞蛹?,它們預(yù)定與該區(qū)域類似的安全性數(shù)據(jù)。而且,這樣的區(qū)域數(shù)據(jù)可被定義在數(shù)據(jù)庫的行中,其中包括屬于該區(qū)域的對其它對象的結(jié)果性關(guān)系。在730處,對數(shù)據(jù)庫中每個所選的區(qū)域設(shè)置對象安全性策略。如上所述,取決于訪問控制條目的類型(隱式/顯式)和對象分層結(jié)構(gòu)中安全性改變的位置,從這樣的設(shè)置中可創(chuàng)建各個安全性區(qū)域。在740處,在經(jīng)典對象域與本發(fā)明的安全性域之間發(fā)生變換,以便在數(shù)據(jù)庫內(nèi)傳播安全性改變。這可包括當(dāng)向給定對象請求安全性改變時在該對象周圍創(chuàng)建區(qū)域子集(例如,取決于安全性改變的類型,創(chuàng)建三或五個區(qū)域)。參考圖8,用于實現(xiàn)本發(fā)明各方面的示例性環(huán)境810包括計算機812。計算機812包括處理單元814、系統(tǒng)存儲器816和系統(tǒng)總線818。系統(tǒng)總線818將包括但不限于系統(tǒng)存儲器816的系統(tǒng)組件耦合至處理單元814。處理單元814可以是任何種類可用的處理器。也可以使用雙微處理器和其它多處理器體系結(jié)構(gòu)作為處理單元814。系統(tǒng)總線818可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、外圍總線或外部總線、和/或使用各種可用的總線體系結(jié)構(gòu)中的任一種的局部總線,可用的總線體系結(jié)構(gòu)包括,但不限于,11位總線、工業(yè)標準體系結(jié)構(gòu)(ISA)、微通道體系結(jié)構(gòu)(MCA)、擴展的ISA(EISA)、智能驅(qū)動器電子接口(IDE)、VESA局部總線(VLB)、外圍部件互連(PCI)、通用串行總線(USB)、高級圖形接口(AGP)、個人計算機存儲卡國際協(xié)會總線(PCMCIA)以及小型計算機系統(tǒng)接口(SCSI)。系統(tǒng)存儲器816包括易失性存儲器820和非易失性存儲器822。基本輸入/輸出系統(tǒng)(BIOS)包含在諸如啟動時在計算機812中元件之間傳遞信息的基本例程,它通常存儲在非易失性存儲器822中。作為說明,而非限制,非易失性存儲器822可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦ROM(EEPROM)或閃存。易失性存儲器820可以包括用作外部高速緩存的隨機存取存儲器(RAM)。作為說明,而非限制,RAM以多種形式可用,諸如同步RAM(SRAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙倍數(shù)據(jù)速率SDRAM(DDRSDRAM)、增強型SDRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)以及直接RambusRAM(DRRAM)。計算機812也包括可移動/不可以移動、易失性/非易失性計算機存儲介質(zhì)。例如,圖8示出磁盤存儲824。磁盤存儲824包括,但不限于,如磁盤驅(qū)動器、軟盤驅(qū)動器、磁帶驅(qū)動器、Jaz驅(qū)動器、Zip驅(qū)動器、Ls-100驅(qū)動器、閃存卡或記憶棒的設(shè)備。另外,磁盤存儲824可以包括獨立或與其它存儲介質(zhì)結(jié)合的存儲介質(zhì),包括但不限于,諸如光盤ROM設(shè)備(CD-ROM)、CD可記錄驅(qū)動器(CD-R驅(qū)動器)、CD可重寫驅(qū)動器(CD-RW驅(qū)動器)或數(shù)字多功能盤ROM驅(qū)動器(DVD-ROM)等的光盤驅(qū)動器。為了便于將磁盤存儲設(shè)備824連接至系統(tǒng)總線818,一般使用諸如接口826等可移動或不可移動接口??梢岳斫?,圖8描述了用戶和在合適的操作環(huán)境810中描述的基本計算機資源之間擔(dān)當(dāng)中介的軟件。這樣的軟件包括操作系統(tǒng)828??杀淮鎯υ诖疟P存儲824上的操作系統(tǒng)828用來控制和分配計算機系統(tǒng)812的資源。系統(tǒng)應(yīng)用程序830利用了操作系統(tǒng)828通過存儲在系統(tǒng)存儲器816或者磁盤存儲824上的程序模塊832和程序數(shù)據(jù)834執(zhí)行的資源管理??梢岳斫猓景l(fā)明可以使用各種操作系統(tǒng)或操作系統(tǒng)的組合來實現(xiàn)。用戶通過輸入設(shè)備836向計算機812輸入命令或信息。輸入設(shè)備836包括,但不限于,諸如鼠標、跟蹤球、指示筆等定點設(shè)備、觸摸墊、鍵盤、話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀、TV調(diào)諧器卡、數(shù)碼相機、數(shù)碼攝像機、網(wǎng)絡(luò)攝像頭等。這些和其它輸入設(shè)備經(jīng)由接口端口838通過系統(tǒng)總線818連接至處理單元814。接口端口838包括,例如串行端口、并行端口、游戲端口和通用串行總線(USB)。輸出設(shè)備840使用某些與輸入設(shè)備836相同類型的端口。從而,例如,USB端口可以用于向計算機812提供輸入,并向輸出設(shè)備840提供來自計算機812的輸出信息。輸出適配器842被提供,以表示某些輸出設(shè)備840,像監(jiān)視器、揚聲器和打印機以及其它需要專用適配器的輸出設(shè)備840。作為說明而非限制,輸出適配器842包括提供輸出設(shè)備840和系統(tǒng)總線818之間的連接手段的顯卡和聲卡。應(yīng)該注意,諸如遠程計算機844等其它設(shè)備和/或設(shè)備系統(tǒng)同時提供輸入和輸出能力兩者。計算機812可在網(wǎng)絡(luò)化環(huán)境中操作,該環(huán)境使用一臺或多臺諸如844的遠程計算機的邏輯連接。遠程計算機844可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、工作站、基于微處理器的裝置、對等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點等,且通常包括上文相應(yīng)于計算機812描述的許多或所有元件。為簡潔起見,對于遠程計算機844僅示出存儲器存儲設(shè)備846。遠程計算機844通過網(wǎng)絡(luò)接口848被邏輯連接至計算機812,并且然后通過通信連接850被物理地連接。網(wǎng)絡(luò)接口848包括諸如局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)的通信網(wǎng)絡(luò)。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI)、銅線分布式數(shù)據(jù)接口(CDDI)、以太網(wǎng)/IEEE802.3、令牌環(huán)/IEEE802.5等。WAN技術(shù)包括,但不限于,點對點鏈路、類似綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)及其變型的電路交換網(wǎng)絡(luò)、分組交換網(wǎng)絡(luò)和數(shù)字用戶線(DSL)。通信連接850指的是用來將網(wǎng)絡(luò)接口848連接至總線818的硬件/軟件。盡管為說明清楚,將通信連接850示為位于計算機812內(nèi),然而通信連接850也可以在計算機812外部。僅為示例的目的,連接至網(wǎng)絡(luò)接口848所必需的硬件/軟件包括內(nèi)部和外部技術(shù),諸如包括常規(guī)電話級調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和DSL調(diào)制解調(diào)器等的調(diào)制解調(diào)器、ISDN適配器以及以太網(wǎng)卡。圖9是本發(fā)明可與之交互的示例計算環(huán)境900的示意性框圖。系統(tǒng)900包括一個或多個客戶機910??蛻魴C910可以是硬件和/或軟件(例如,線程、進程、計算設(shè)備)。系統(tǒng)900也包括一個或多個服務(wù)器930。服務(wù)器930也可以是硬件和/或軟件(例如,線程、進程、計算設(shè)備)。例如,服務(wù)器930可以容納通過使用本發(fā)明來執(zhí)行變換的線程。客戶機910和服務(wù)器930之間的一種可能的通信可以是適用于在兩個或多個計算機進程之間傳輸?shù)臄?shù)據(jù)包的形式。系統(tǒng)900包括可以被用來方便于客戶機910和服務(wù)器930之間通信的通信架構(gòu)950??蛻魴C910可操作地連接至一個或多個客戶機數(shù)據(jù)存儲960,它可用來存儲信息局部到客戶機910。類似地,服務(wù)器930可操作地連接至一個或多個服務(wù)器數(shù)據(jù)存儲940,它可被用來存儲信息局部到服務(wù)器930。以上描述包括本發(fā)明的示例。當(dāng)然,不可能為描述本發(fā)明而描述每個可想象的組件或方法的組合,但是本領(lǐng)域的普通技術(shù)人員可以認識到,本發(fā)明的眾多其它組合和排列是可能的。從而,本發(fā)明旨在包括落入所附權(quán)利要求書精神和范圍內(nèi)的所有這樣的變更、修改和變化。而且,對于在詳細描述和權(quán)利要求書中都使用的術(shù)語"包括"而言,當(dāng)被用作權(quán)利要求書中的過渡詞時,這樣的術(shù)語旨在類似于解釋術(shù)語"包含"的方式是包含性的。權(quán)利要求1.一種使數(shù)據(jù)庫安全性和管理更容易的系統(tǒng),包括數(shù)據(jù)庫組件,它存儲在對象之間具有分層關(guān)系的多個對象;以及區(qū)域組件,它為所述對象子集定義一個或多個安全區(qū),并將安全性數(shù)據(jù)映射到所述子集,所述安全區(qū)獨立于所述對象之間的所述分層關(guān)系。2.如權(quán)利要求l所述的系統(tǒng),其特征在于,所述區(qū)域組件提供從對象域到安全性域的變換。3.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述區(qū)域組件包括定義所述安全區(qū)的至少其中之一的至少一個安全性描述符。4.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述區(qū)域組件支持所述安全性域中的區(qū)域之間的繼承安全性。5.如權(quán)利要求l所述的系統(tǒng),其特征在于,所述區(qū)域組件基于對安全性改變的分析支持安全區(qū)的展開或安全區(qū)的折疊。6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述區(qū)域組件基于所檢測的安全性改變將安全性區(qū)域展開至少三個區(qū)域。7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述安全性改變由訪問控制條目(ACE)檢測。8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述訪問控制條目表示顯式或隱式的安全性改變。9.如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括使對象項與安全性描述符標識符關(guān)聯(lián)的表。10.如權(quán)利要求9所述的系統(tǒng),其特征在于,還包括將所述安全性描述符標識符映射到安全性描述符的內(nèi)容的表。11.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括根節(jié)點、孩子、節(jié)點、容器項目、非容器項目的至少其中之一。12.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括在所述安全區(qū)之間傳播安全性改變的組件。13.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括與所述區(qū)域組件或所述數(shù)據(jù)庫交互的至少一個接口。14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述接口包括取安全性函數(shù)、取描述符函數(shù)、設(shè)置安全性函數(shù)、添加保持鏈接函數(shù)、移除保持鏈接函數(shù)、以及取有效安全性函數(shù)。15.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括在安全性域中定義安全性對象關(guān)系的安全性分層結(jié)構(gòu)行。16.—種其上存儲用于實現(xiàn)如權(quán)利要求1所述的組件的計算機可讀指令的計算機可讀介質(zhì)。17.—種用于對象數(shù)據(jù)庫安全性的方法,包括在對象域中定義數(shù)據(jù)庫對象;在安全性域中定義安全性組件;提供所述對象域與所述安全性域之間的映射;以及采用所述映射來為所述數(shù)據(jù)庫對象定義安全性區(qū)域。18.如權(quán)利要求17所述的方法,其特征在于,還包括在所述安全性域中檢測到改變之后生成至少三個安全性區(qū)域。19.如權(quán)利要求17所述的方法,其特征在于,還包括在所述安全性域內(nèi)為所述安全性組件提供繼承機制。20.—種使數(shù)據(jù)庫對象安全性更容易的系統(tǒng),包括用于存儲數(shù)據(jù)庫對象的裝置;用于為所述對象設(shè)置安全性區(qū)域的裝置;用于將所述安全性區(qū)域映射到所述對象的裝置;以及用于至少部分基于所述安全性區(qū)域來訪問所述對象的裝置。全文摘要本發(fā)明涉及向具有分層關(guān)系的數(shù)據(jù)庫對象提供基于區(qū)域的安全性的系統(tǒng)和方法。在一個方面中,提供使數(shù)據(jù)庫安全性和管理更容易的一個系統(tǒng)。該系統(tǒng)包括存儲在對象之間具有分層關(guān)系的多個對象的數(shù)據(jù)庫組件。區(qū)域組件為對象子集定義安全區(qū),并將安全性數(shù)據(jù)映射到該子集,其中安全區(qū)獨立于對象之間的分層關(guān)系、與其去耦、或分離。文檔編號G06F17/20GK101375275SQ200680012404公開日2009年2月25日申請日期2006年3月9日優(yōu)先權(quán)日2005年5月4日發(fā)明者T·杜塔,Z·李申請人:微軟公司