CN101375275A - 基于区域的安全性 - Google Patents

基于区域的安全性 Download PDF

Info

Publication number
CN101375275A
CN101375275A CNA2006800124046A CN200680012404A CN101375275A CN 101375275 A CN101375275 A CN 101375275A CN A2006800124046 A CNA2006800124046 A CN A2006800124046A CN 200680012404 A CN200680012404 A CN 200680012404A CN 101375275 A CN101375275 A CN 101375275A
Authority
CN
China
Prior art keywords
security
database
descriptor
safety
zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800124046A
Other languages
English (en)
Other versions
CN101375275B (zh
Inventor
Z·李
T·杜塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101375275A publication Critical patent/CN101375275A/zh
Application granted granted Critical
Publication of CN101375275B publication Critical patent/CN101375275B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及向具有分层关系的数据库对象提供基于区域的安全性的系统和方法。在一个方面中,提供使数据库安全性和管理更容易的一个系统。该系统包括存储在对象之间具有分层关系的多个对象的数据库组件。区域组件为对象子集定义安全区,并将安全性数据映射到该子集,其中安全区独立于对象之间的分层关系、与其去耦、或分离。

Description

基于区域的安全性
技术领域
本发明一般涉及计算机系统,尤其涉及为基于对象子集在该子集的区域描述符上提供安全性的系统和方法,以便减少数据传播以及经典对象继承分层结构的存储需求。
发明背景
现代商业数据库设计包括涉及对如何存储、管理和操纵大量数据的众多复杂数据的考虑。这样的数据通常包括诸如提供各个对象之间的继承属性的对象树中的与其它数据的错综复杂的关系。这些类型的关系通常使对数据库以及管理这样的数据的组件的有效设计变得复杂。例如,数据库设计过程的一个方面在于理解关系数据库管理系统存储数据的方式。为了高效且准确地向用户提供信息,数据库程序需要访问关于存储在分开的表中的不同主题的事实(数据)。例如,一个表可能仅存储关于雇员的事实,而另一表可能仅存储关于销售的事实,而其它表用于某些其它的公司事务。当使用数据时,这些事实然后被自动组合并按照众多不同的方式被呈现。例如,用户可打印组合了关于雇员的事实和关于销售的事实的报告。
一般而言,为设计数据库,按某种要求(诸如库中的单独主题)将信息分解,然后数据库程序确定主题如何联系。这些程序通常包括使用诸如结构化查询语言(SQL)的常见数据库语言的关系数据库查询。在这样的语言可被应用于数据之前,通常作出关于哪些类型的数据是重要的以及这样的数据应如何组织的若干决策。例如,这些决策可包括确定数据库的范围,以决定其中存储哪些数据。然后确定将信息分成单独主题所需的表,诸如“雇员”或“定单”。然后每一主题将是数据库中的一个表。其它方面包括确定决定在每一表中存储何种信息所需的各个字段。表中信息的每一目录被称为字段,且被显示为表中的一列。例如,雇员表中的一个字段可以是姓;另一字段可以是雇佣日期。另一考虑是确定诸如决定一个表中的数据如何与其它表中的数据联系的关系。设计者通常按需向表添加字段,或创建新表来说明关系。
当设计数据库时可能存在遇到的若干常见的陷阱。这些问题可引起数据更难以使用和维护。这些可包括使一个表具有不是全部都与同一主题有联系的大量字段。例如,一个表可包含关于顾客的字段以及包含销售信息的字段。而且,如果每一表仅包含关于一个主题的数据,这往往是更高效的。在其它情况中,当在众多记录中有意向字段留下空白时产生开支,因为它们并不适用于这些记录。这通常暗示,这些字段属于另一表。当存在其中众多表具有相同字段的大量表时,冗余是另一个问题。例如,当分开一月份销售和二月份销售的表,或本地顾客和远程顾客的表时,存在对同一类型的信息的冗余存储。因此,一种技术是在一个表中合并关于单个主题的所有信息。
除如何设置和设计数据库的表和字段的复杂性以外,必须进行其它考虑。这些包括应如何向各个表和字段提供数据安全性(例如,诸如谁和什么可访问文件的安全性)。这包括如何向诸如分层对象等存储在数据库中的复杂结构提供安全性。传统地,在这样的对象的继承分层结构中,安全性考虑被传播,其中如果分层结构中的项目之一被改变,则该结构中的每一项目需要被更新。然而,存在利用关系数据库的表的各行来存储分层对象的任何实现所面临的常见问题,就是如何设置关于每一对象的安全性信息或数据,并基于继承模型将安全性数据填充于其孩子对象。
发明概述
以下呈现了本发明的简化概述以便提供对本发明的某些方面的基本理解。该概述不是本发明的广泛的概观。它不旨在标识本发明的重要/关键的元素,也不旨在描绘本发明的范围。其唯一目的是以简化形式呈现本发明的某些概念作为稍后呈现的更详细描述的序言。
本发明涉及向在对象之间具有分层关系的多个数据库对象提供基于区域的安全性的系统和方法。提供将安全性信息映射到分层结构中存在的对象的子集以便创建独立于分层结构的一个或多个安全区的区域组件。这允许区域或区中存在的对象共享安全性属性,这将减少数据库处理需求(例如,较少的节点要更新安全性数据)。一般而言,经典数据库体系结构通常利用关系数据库表的各行来存储分层对象,这也使得要在每一对象上设置相关的安全性描述符,以及基于继承模型对各个孩子对象填充安全性描述符。这会导致用于每一对象更新的日益增长的处理时间量,而通过引入基于区域的考虑可减少处理时间。
区域可以是共享相同或相似安全性描述符的对象的集合(不必位于一邻接树中)。当更新了对象上的安全性描述符时,对象所属的区域可分裂或折叠。例如,如果从该改变得到任何孩子对象上的不同的安全性描述符,则区域可分裂;而如果改变产生与其它区域相同的安全性描述符,则该区域可折叠入另一区域。与每一对象直接拥有其自己的安全性描述符相反,一区域拥有该安全性描述符;从而显著地减少了当改变了一对象上的安全性描述符而可能影响其它对象上的安全性描述符时,对象更新的次数。
一般而言,传统上将区域定义为分层对象模型中的对象的子树。在本发明的情况中,区域被定义为共享相同安全性描述符的一组对象,借此共享相同的安全性描述符的那些对象不必位于同一子树下。这种间接性允许管理对象安全性描述符的有效处理。因此,基于区域的安全性实质上将对象域变换到安全性描述符域,并在安全性描述符域上直接地且独立于分层结构地执行安全性描述符操作,这减少了总的数据库处理。
为了完成前述和相关目的,本发明的某些说明性的方面在此处将结合以下描述符和附图被描述。这些方面指示可实现本发明的各种方式,它们均旨在由本发明覆盖。当结合附图考虑阅读本发明的以下详细描述时,本发明的其它优点和新颖的特征将是显而易见的。
附图简述
图1是根据本发明的一方面示出对象安全性系统的示意框图。
图2是根据本发明的一方面示出示例安全性域变换的示意图。
图3根据本发明的一方面示出了替换安全性域变换。
图4根据本发明的一方面示出了示例安全性接口。
图5根据本发明的一方面示出了区域组件处理。
图6根据本发明的一方面示出了示例区域处理算法。
图7根据本发明的一方面示出了安全区域处理。
图8是根据本发明的一方面示出合适的操作环境的示意框图。
图9是本发明可与之交互的示例计算环境的示意框图。
发明的详细描述
本发明涉及向具有分层关系的数据库对象提供基于区域的安全性的系统和方法。与为每一对象更新单独的安全性描述符相反,本发明引入了区域的概念,借此从给定对象与区域而非分层结构的关联得到该给定对象的安全性。这与需要各个对象描述并在继承分层结构之间置入安全性的经典体系结构相反。以此方式,数据库处理和存储可被保存,因为众多对象可能共享可在各个区域的更全局的范围上定义的类似的安全属性。在一个方面中,提供使数据库安全性和管理更容易的系统。该系统包括存储在对象之间具有分层关系的多个对象的数据库组件。区域组件为对象子集定义安全区,并将安全性数据映射到该子集,其中安全区独立于对象之间的分层关系、并与其去耦、或分离。
如本申请中所使用的,术语“组件”、“系统”、“对象”、“区”等意指计算机-相关实体,或者是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、可执行代码、执行的线程、程序和/或计算机。作为说明,运行在服务器上的应用程序和该服务器本身都可以是组件。一个或多个组件可以驻留在进程和/或执行中的线程内,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。而且,这些组件可从其上存储各种数据结构的各种计算机可读介质上执行。组件可经由本地和/或远程进程,诸如根据含有一个或多个数据包的信号进行通信(例如,来自一个组件的数据与本地系统、分布式系统中的另一组件和/或跨诸如因特网的网络与其它系统经由信号进行交互)。
首先参考图1,根据本发明的一方面示出了对象安全性系统100。系统100包括与区域组件120相关联的关系数据库110(例如,SQL或其它类型的数据库),区域组件120定义一个或多个对象安全区130。一般而言,当作出了对象安全性改变时,对象分层结构的各个节点(例如,见分层结构中参考标号140处的一个对象)不会被一个一个单独地更新。相反,由每个130处的各个安全区的区域组件120分配安全性策略。通过将对象映射至安全区130而不是一个一个单独地更新每一对象,数据库110处的读取操作的次数可被减少。因此,区域组件120将安全性策略映射从其中更新每一对象的继承分层结构变换成其中对象区共享类似的安全性策略的对象安全性域。以此方式,当对象的安全性策略改变时,可通过仅更新安全区130缩减的子集而非更新经典继承分层结构中的每一个别对象,来传播安全性更新的较小子集。注意到,可采用继承概念在系统100中传播策略,然而,继承是位于安全区130之间而非树中对象之间的常规继承。因此,是在以安全性域而非对象域建模的组件之间存在继承。这暗示了,各个对象之间的安全性映射是位于对象及其相关联的区130之间而非为各个对象140显式划定的。因此,区域组件120向所标识的对象的区域提供安全性,且实质上与将安全性改变传播给分层结构中的所有对象的常规对象分层结构去耦、分离或被独立。
一般而言,可对数据库110中的项目分配一(标识符)ID用作安全性描述符。数据库包括具有被称为SDID(安全性描述符ID)列的[Table!Item]表。该SDID是例如在隐藏的SQL系统表中存储和维护的安全性描述符的唯一ID。可通过公用视图来展示系统表(例如,Sys.Security_Descriptor)。下表是关于安全性描述符可如何被插入基本对象模型或与之相关联的简化说明:
[Table!Item]:将项目与安全性描述符ID相关联。
 
_ItemID(项目ID) ... _SDId ...
[Sys.Security_Descriptor]:将ID映射到安全性描述符的内容。
 
Sd_id Type(类型) SecurityDescriptor(安全性描述符) ...
为了有效地将安全性描述符ID(SD ID)分配给对象项目,SD区域技术是部分基于对于大多数对象项目往往共享相同的安全性描述符的观察。SD区域是共享相同或相似SD ID的一组项目(它们不必如常规系统中的那样为邻接的)。一般,以上所示[Table!Item]中的所有项目可被分组到不同的SD区域。可按照一个SD区域的SD可从上述安全性域中另一SD区域的SD继承来建立SD区域的关系。基本上,建立可与相应的对象项目树进行比较的SD区域树,但它具有较少的节点,如以下关于图2和3所示。SD区域树因此可被用于有效地更新项目的SD。一般,当创建安全性项目树时,创建三个SD区域来将SD分配给树中基本上所有的项目。因此,一个SD区域用于根项目(其中,定义了显式的SD),另一SD区域用于各个容器项目,而最后一个SD用于非容器项目。
现在参考图2和3,根据本发明的一方面示出了示例安全性域变换200和300。在图2的200处,示出了对象树的节点,其中210处的黑节点是根项目;220处的灰节点是容器项目,而230处的白节点是非容器项目。如240处所示,当更新项目的安全性标识符(SD)(例如,通过改变SD的所有者、分组、访问控制列表等)时,项目所属的SD区域可被分成三个子组或子集。安全性改变一般通过被称为访问控制条目(ACE)的数据来反映,该数据可以是显式或隐式的形式。当将显式的ACE添加到项目的SD时,可在该项周围创建新的SD区域。在这种情况中,创建三个了SD区域,一个用于项目(添加显式ACE的项目)本身、一个用于其容器孩子,另一个用于其非容器孩子。参考图3,示出了当非传播显式ACE被添加到310处的项目上的SD时的更复杂情况,其中如320处所示,在项目周围创建了五个新区域。在这种情况中,在330为项目本身(即添加显式ACE的项目)创建了一个区域,在340处为其直接容器孩子创建了一个区域,在350处为其直接非容器孩子创建了一个区域,在360处为其非直接容器孩子创建了一个区域,在370处为其非直接非容器孩子创建了一个区域。
概括图2和3,当项目的SD被显式更新(不是通过继承)时,创建新区域。一般而言,取决于对SD进行的更新创建3或5个新区域(其它数目也有可能)。如果添加了非传播ACE,则创建五个SD区域,在其它情况中,一般创建三个SD区域。作为示例,把SD包含非继承属性(在大多数情况中为非继承ACE)的项目假定为根项目。如上所述,取决于SD中显式ACE的类型,容器类型根项目可拥有3或5个SD区域。如果非容器其SD具有显式的属性,它可具有其自己的SD区域。如果移除了根项目SD的所有显式属性,则该根项目所拥有的SD区域可被折叠到其双亲项目的SD,这将减少一个一个单独地对象安全性更新。每一SD区域可被表示为Security_Hierachy(安全性分层结构)表中的行,诸如下例:
[Table!Security_Hierachy]:存储SD继承关系,并建立项目来共享相同的安全性描述符。
 
_SDIdParent(SDID双亲) _SDId RootItemID(根项目ID) _IsContainer(是否为容器) _Scope(范围)
上表的列可包括作为SD区域的ID的_SDId字段;作为所继承的安全属性源自的SD的ID的_SDIdParent字段;作为定义显式SD的项目的ID的_RootItemID;如果SD应用于容器则为1如果应用于非容器则为0的_IsContainer字段;以及如下编码的_Scope字段:0:SD应用于根项目,1:SD仅应用于根项目的孩子,2:SD应用于根项目的直接孩子,3:SD应用于根项目的非直接孩子。
注意到,当引导数据库时,按需可创建三个默认的安全性描述符:一个描述符用于顶端的根项目,一个描述符用于所有的容器孩子,而另一描述符用于所有非容器孩子。因此,在顶端的根项目上也可创建三个SD区域。一般,随后批量创建的所有项目均可具有SD之一作为其默认的SD。当将显式ACE添加到项目时,可如上所述创建新的SD区域。
图4根据本发明的一方面示出了示例安全性接口400。各个安全性接口400可被提供用于与上述基于区域的考虑相交互。以下将描述可应用的少量接口示例。这些可包括用于检索安全性数据的接口410、用于设置安全性信息的接口420、以及将在以下更详细描述的用于保持链接(holding link)的接口。以下代码片段是这些接口400中某些的公共声明的示例。
Public sealed class Item Security
{
  public ItemSecurity(Guid itemId)
  public string GetSDDLSecurity()
  public GenericSecurityDescriptor GetSecurity()
  public void SetSDDLSecurity(string sd,SECURITY_INFORMATION si)
  public void SetSecurity(GenericSecurityDescriptor gsd,
                                         SECURITY_INFORMATION si)
  public string GetUserEffectiveSecurity()
  public void AddHoldingLink(Guid itemId)
  public void RemoveHoldingLink(Guid itemId)
}
以下提供安全性接口410到430的简要描述:
public string GetSDDLSecurity()——检索SDDL字串格式的项目上的整个安全性描述符。它包括继承和显式地访问控制列表。
public GenericSecurityDescriptor GetSecurity()——检索受管ACL类GenericSecurityDescriptor格式的项目上的整个安全性描述符。
public void SetSDDLSecurity(string sd,SECURITY_INFORMATION si)设置项目上的安全性描述符。该函数忽略所继承的ACE。它从其双亲和其它保持链接重新生成继承ACE。它可被调用来设置所有者、分组、控制标志或显式ACE。SECURITY_INFORMATION指示安全性描述符的哪一部分要被更新。
public void SetSecurity(GenericSecurityDescriptor gsd,
SECURITY_INFORMATION si)——设置项目上的安全性描述符。将受管ACL类作为输入参数。
public void AddHoldingLink(Guid itemId)——当向项目添加新保持链接时,更新项目上的安全性描述符。
public void RemoveHoldingLink(Guid itemId)——当从项目移除新保持链接时,更新项目上的安全性描述符。
public string GetUserEffectiveSecurity()——检索包含与当前安全性内容相关的ACE的项目上的安全性描述符。
图5根据本发明的一个方面示出了区域组件处理500。在510处,提供了区域定义。这些包括作为共享相同SD的一组项目的安全性描述符(SD)区域。该组项目不必形成邻接树。安全性分层结构(SH)行是以下所列[Table!Security_Hierachy]表中的一行。每一SD区域在表中应具有一SH行。
 
_ParentSDId _SDId RootItemId _IsContainer _Scope
SD0 SD1 ItemId 0 3
上表中的一行被称为SH行,它对应于一SD区域。该表中的行指示共享相同安全性描述符(上例中的SD1)的一组项目(可以是单个项目)。该组项目由公共的根(ItemId)、公共的类型(容器或非容器)以及范围定义。范围可任选来支持不同的操作系统安全性模型。
在520处,描述了区域合并和创建的考虑。在此方面中,可在以下条件下创建一个新的SD区域:
1.对非容器项目进行了SD改变。
在以下条件下可创建三个新的SD区域:
1.对容器项目进行了SD改变,且
2.该SD改变不包括非传播ACE。
在以下条件下可创建五个新的SD区域:
1.对容器项目进行了SD改变,且
2.该SD改变包括非传播ACE。
在以下条件下可合并SD区域:
1.双亲SD通过刷新(flushing)孩子SD来实施SD继承。或者
2.从SD中移除了显式ACE。
在530处,提供了可在关于图6所述的以下算法中采用的各个符号。这些概念包括:
_Item或*——应用该操作的当前项目系统。
SDId(x)或SDId—项目x上的安全性描述符的sd_id。
SDId_NC(x)或SDId_NC——应用于项目x的非容器孩子对象的SDId。
SDId_C(x)或SDId_C——应用于项目x的容器孩子对象的SDId。
SDId_NC2(x)或SDId_NC2——应用于项目x的直接非容器孩子对象的SDId。
SDId_C2(x)或SDId_C2——应用于项目x的直接容器孩子对象的SDId。
SDId_NC3(x)或SDId_NC3——应用于项目x的非直接非容器孩子对象的SDId。
SDId_C3(x)或SDId_C3——应用于项目x的非直接容器孩子对象的SDId。
SHRow(x,i,j)——[Table!Security_Hierachy]表中_RootItemId=x,_IsContainer=i,_Scope=j的行
UpdateItemSD(OldSDId,NewSDId,RootItem,IsContainer,Scope)——更新当前SDId=OldSDId、祖先为RootItem(根项目)、Scope在NewSDId内的类型(IsContainer)的所有项目的SDId。
UpdateSDBlob(SDId)——如果其孩子的SDId未能与其SDId形成循环,则更新该SDId及其孩子的安全性描述符的内容。例如,当对于在[Table!Security_Hierachy]表中没有自己的行的文件项目(带SD1)上添加保持链接(SD0)时,将创建三行(SD0,SD1,_Item,0,0)、(SD1,SD0,_Item,0,1)、(SD1,SD0,_Item,1,1)。此处为该项目的孩子项目重新使用SD0以显著地减少[Table!Item]表中更新的次数。
UpdateSDId(SDId,SDId_New)——更新[Table!Security_Hierachy]中_SDId=SDId的当前项目的行,以便令_SDId=SDId_New。
UpdateParentSDId(SDIdPar,SDIdPar_New)——更新[Table!Security_Hierachy]中_ParentSDId=SDIdPar的行以便使_ParentSDId=SDIdPar_New。
CreateNewSD(SDId)——从当前SD加上所进行的改变(添加/移除ACE、添加移除/保持链接)来创建新SD。
图6根据本发明的一方面示出示例区域处理算法600。在此方面中,可采用至少三个单独或组合的算法600来实现区域处理。这包括在610处设置安全性描述符;添加保持链接620;以及在630处的移除保持链接算法。对于设置安全性描述符610,有各种方式来改变对象上的安全性描述符,至少包括:
·添加/移除可继承显式ACE。
·添加/移除应用于该项目及其所有孩子的可继承显式ACE。
·添加/移除仅应用于其孩子的可继承显式ACE。
·添加/移除仅应用于该项目及其直接孩子的可继承显式ACE。
·添加/移除仅应用于孩子容器的可继承显式ACE。
·添加/移除仅应用于孩子对象的可继承显式ACE。
·添加/移除仅应用于某种类型的对象的可继承显式ACE。
·改变安全性描述符的所有者。
·改变安全性描述符的分组。
·改变安全性描述符控制标志。
i.停止ACE继承
ii.开始ACE继承
iii.改变仅用于该项目的其它控制标志。
在620处,当将保持链接添加到项目时,取决于该保持链接是否具有可继承ACE以及该项目上的SD的SE_DACLE_PROTECED标志是否开启,可以或不可以改变该项目上的安全性描述符。然而,应更新[Table!Security_Hierachy]表。当将保持链接添加到一项目上时,如果该项目还没有指定的行,则应在[Table!Security_Hierachy]表中添加该项目的三个新行。为了减少[Table!Item]表中的更新,可使用以下格式来创建这些行:(SD0,SD1,*,0,0)、(SD1,SD0,*,0,1)、(SD1,SD0,*,1,1),其中SD0是保持链接的目标项目的老的SDId,SD1是目标项目的新的SDId。按此方案,应仅需更新[Table!Item]表中的源项目。基于该方案,如果稍后将显式不可继承ACE添加到该项目,则不会在[Table!Item]表中执行更新。在630处,可假定要移除的保持链接的安全性描述符的SDId为SDId_HD。在移除保持链接的情况中,SD区域可折叠,因此可合并[Table!Security_Hierachy]表中的各行。
图7根据本发明的一方面示出了用于数据库对象安全性的示例安全性区域处理700。尽管,为了描述的简单,该方法被表示和描述为一连串或多个动作,可以理解和领会,本发明不受动作的顺序的限制,因为,根据本发明,某些动作可以按不同的顺序和/或与此处所示和所描述的其它动作同时发生。例如,本领域的技术人员可以理解和领会,方法可以替换地被表示为诸如状态图中的一连串互相关联的状态或事件。而且,并非所有示出的动作都是实现根据本发明的方法所必需的。
前进至图7的710,考虑到经典的对象分层结构中的任何潜在更新,通过移除要被更新(安全性方面)的每一对象的需求,使数据库中的各个对象的安全性描述符从该分层结构中去耦或分离。在720处,利用了一个或多个安全性描述符来为驻留在数据库中的对象定义对象区域。如上所述,这可包括折叠或合并来自相似或不相似对象树中的对象安全性数据,以便定义安全性区域或对象子集,它们预定与该区域类似的安全性数据。而且,这样的区域数据可被定义在数据库的行中,其中包括属于该区域的对其它对象的结果性关系。在730处,对数据库中每个所选的区域设置对象安全性策略。如上所述,取决于访问控制条目的类型(隐式/显式)和对象分层结构中安全性改变的位置,从这样的设置中可创建各个安全性区域。在740处,在经典对象域与本发明的安全性域之间发生变换,以便在数据库内传播安全性改变。这可包括当向给定对象请求安全性改变时在该对象周围创建区域子集(例如,取决于安全性改变的类型,创建三或五个区域)。
参考图8,用于实现本发明各方面的示例性环境810包括计算机812。计算机812包括处理单元814、系统存储器816和系统总线818。系统总线818将包括但不限于系统存储器816的系统组件耦合至处理单元814。处理单元814可以是任何种类可用的处理器。也可以使用双微处理器和其它多处理器体系结构作为处理单元814。
系统总线818可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各种可用的总线体系结构中的任一种的局部总线,可用的总线体系结构包括,但不限于,11位总线、工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展的ISA(EISA)、智能驱动器电子接口(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。
系统存储器816包括易失性存储器820和非易失性存储器822。基本输入/输出系统(BIOS)包含在诸如启动时在计算机812中元件之间传递信息的基本例程,它通常存储在非易失性存储器822中。作为说明,而非限制,非易失性存储器822可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪存。易失性存储器820可以包括用作外部高速缓存的随机存取存储器(RAM)。作为说明,而非限制,RAM以多种形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。
计算机812也包括可移动/不可以移动、易失性/非易失性计算机存储介质。例如,图8示出磁盘存储824。磁盘存储824包括,但不限于,如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、Ls-100驱动器、闪存卡或记忆棒的设备。另外,磁盘存储824可以包括独立或与其它存储介质结合的存储介质,包括但不限于,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等的光盘驱动器。为了便于将磁盘存储设备824连接至系统总线818,一般使用诸如接口826等可移动或不可移动接口。
可以理解,图8描述了用户和在合适的操作环境810中描述的基本计算机资源之间担当中介的软件。这样的软件包括操作系统828。可被存储在磁盘存储824上的操作系统828用来控制和分配计算机系统812的资源。系统应用程序830利用了操作系统828通过存储在系统存储器816或者磁盘存储824上的程序模块832和程序数据834执行的资源管理。可以理解,本发明可以使用各种操作系统或操作系统的组合来实现。
用户通过输入设备836向计算机812输入命令或信息。输入设备836包括,但不限于,诸如鼠标、跟踪球、指示笔等定点设备、触摸垫、键盘、话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数码摄像机、网络摄像头等。这些和其它输入设备经由接口端口838通过系统总线818连接至处理单元814。接口端口838包括,例如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备840使用某些与输入设备836相同类型的端口。从而,例如,USB端口可以用于向计算机812提供输入,并向输出设备840提供来自计算机812的输出信息。输出适配器842被提供,以表示某些输出设备840,像监视器、扬声器和打印机以及其它需要专用适配器的输出设备840。作为说明而非限制,输出适配器842包括提供输出设备840和系统总线818之间的连接手段的显卡和声卡。应该注意,诸如远程计算机844等其它设备和/或设备系统同时提供输入和输出能力两者。
计算机812可在网络化环境中操作,该环境使用一台或多台诸如844的远程计算机的逻辑连接。远程计算机844可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它常见网络节点等,且通常包括上文相应于计算机812描述的许多或所有元件。为简洁起见,对于远程计算机844仅示出存储器存储设备846。远程计算机844通过网络接口848被逻辑连接至计算机812,并且然后通过通信连接850被物理地连接。网络接口848包括诸如局域网(LAN)和广域网(WAN)的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网/IEEE802.3、令牌环/IEEE802.5等。WAN技术包括,但不限于,点对点链路、类似综合业务数字网(ISDN)及其变型的电路交换网络、分组交换网络和数字用户线(DSL)。
通信连接850指的是用来将网络接口848连接至总线818的硬件/软件。尽管为说明清楚,将通信连接850示为位于计算机812内,然而通信连接850也可以在计算机812外部。仅为示例的目的,连接至网络接口848所必需的硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器等的调制解调器、ISDN适配器以及以太网卡。
图9是本发明可与之交互的示例计算环境900的示意性框图。系统900包括一个或多个客户机910。客户机910可以是硬件和/或软件(例如,线程、进程、计算设备)。系统900也包括一个或多个服务器930。服务器930也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器930可以容纳通过使用本发明来执行变换的线程。客户机910和服务器930之间的一种可能的通信可以是适用于在两个或多个计算机进程之间传输的数据包的形式。系统900包括可以被用来方便于客户机910和服务器930之间通信的通信架构950。客户机910可操作地连接至一个或多个客户机数据存储960,它可用来存储信息局部到客户机910。类似地,服务器930可操作地连接至一个或多个服务器数据存储940,它可被用来存储信息局部到服务器930。
以上描述包括本发明的示例。当然,不可能为描述本发明而描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识到,本发明的众多其它组合和排列是可能的。从而,本发明旨在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变化。而且,对于在详细描述和权利要求书中都使用的术语“包括”而言,当被用作权利要求书中的过渡词时,这样的术语旨在类似于解释术语“包含”的方式是包含性的。

Claims (20)

1.一种使数据库安全性和管理更容易的系统,包括:
数据库组件,它存储在对象之间具有分层关系的多个对象;以及
区域组件,它为所述对象子集定义一个或多个安全区,并将安全性数据映射到所述子集,所述安全区独立于所述对象之间的所述分层关系。
2.如权利要求1所述的系统,其特征在于,所述区域组件提供从对象域到安全性域的变换。
3.如权利要求2所述的系统,其特征在于,所述区域组件包括定义所述安全区的至少其中之一的至少一个安全性描述符。
4.如权利要求2所述的系统,其特征在于,所述区域组件支持所述安全性域中的区域之间的继承安全性。
5.如权利要求1所述的系统,其特征在于,所述区域组件基于对安全性改变的分析支持安全区的展开或安全区的折叠。
6.如权利要求5所述的系统,其特征在于,所述区域组件基于所检测的安全性改变将安全性区域展开至少三个区域。
7.如权利要求6所述的系统,其特征在于,所述安全性改变由访问控制条目(ACE)检测。
8.如权利要求7所述的系统,其特征在于,所述访问控制条目表示显式或隐式的安全性改变。
9.如权利要求1所述的系统,其特征在于,还包括使对象项与安全性描述符标识符关联的表。
10.如权利要求9所述的系统,其特征在于,还包括将所述安全性描述符标识符映射到安全性描述符的内容的表。
11.如权利要求1所述的系统,其特征在于,还包括根节点、孩子、节点、容器项目、非容器项目的至少其中之一。
12.如权利要求1所述的系统,其特征在于,还包括在所述安全区之间传播安全性改变的组件。
13.如权利要求1所述的系统,其特征在于,还包括与所述区域组件或所述数据库交互的至少一个接口。
14.如权利要求13所述的系统,其特征在于,所述接口包括取安全性函数、取描述符函数、设置安全性函数、添加保持链接函数、移除保持链接函数、以及取有效安全性函数。
15.如权利要求1所述的系统,其特征在于,还包括在安全性域中定义安全性对象关系的安全性分层结构行。
16.一种其上存储用于实现如权利要求1所述的组件的计算机可读指令的计算机可读介质。
17.一种用于对象数据库安全性的方法,包括:
在对象域中定义数据库对象;
在安全性域中定义安全性组件;
提供所述对象域与所述安全性域之间的映射;以及
采用所述映射来为所述数据库对象定义安全性区域。
18.如权利要求17所述的方法,其特征在于,还包括在所述安全性域中检测到改变之后生成至少三个安全性区域。
19.如权利要求17所述的方法,其特征在于,还包括在所述安全性域内为所述安全性组件提供继承机制。
20.一种使数据库对象安全性更容易的系统,包括:
用于存储数据库对象的装置;
用于为所述对象设置安全性区域的装置;
用于将所述安全性区域映射到所述对象的装置;以及
用于至少部分基于所述安全性区域来访问所述对象的装置。
CN2006800124046A 2005-05-04 2006-03-09 基于区域的安全性 Expired - Fee Related CN101375275B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/122,299 2005-05-04
US11/122,299 US8326877B2 (en) 2005-05-04 2005-05-04 Region-based security
PCT/US2006/008416 WO2006118662A2 (en) 2005-05-04 2006-03-09 Region-based security

Publications (2)

Publication Number Publication Date
CN101375275A true CN101375275A (zh) 2009-02-25
CN101375275B CN101375275B (zh) 2013-02-13

Family

ID=37308435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800124046A Expired - Fee Related CN101375275B (zh) 2005-05-04 2006-03-09 基于区域的安全性

Country Status (18)

Country Link
US (1) US8326877B2 (zh)
EP (1) EP1875389B1 (zh)
JP (1) JP2008541226A (zh)
KR (1) KR101292430B1 (zh)
CN (1) CN101375275B (zh)
AU (1) AU2006241479B2 (zh)
BR (1) BRPI0609954A2 (zh)
CA (1) CA2602315A1 (zh)
ES (1) ES2600745T3 (zh)
IL (1) IL186068A (zh)
MX (1) MX2007012421A (zh)
NO (1) NO20074868L (zh)
NZ (1) NZ561945A (zh)
RU (1) RU2413978C2 (zh)
SG (1) SG161277A1 (zh)
TW (1) TWI399662B (zh)
WO (1) WO2006118662A2 (zh)
ZA (1) ZA200707971B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080822A (ko) * 2007-09-28 2010-07-12 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9069599B2 (en) * 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
AU2009259876A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US20110035802A1 (en) * 2009-08-07 2011-02-10 Microsoft Corporation Representing virtual object priority based on relationships
EP2817944A1 (en) * 2012-02-24 2014-12-31 Interdigital Patent Holdings, Inc. Methods, apparatus and systems for mobile cloud bursting
CN103377261A (zh) * 2012-04-28 2013-10-30 瑞昱半导体股份有限公司 管理存取控制清单的装置、执行装置以及方法
RU2495487C1 (ru) * 2012-08-10 2013-10-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для определения доверия при обновлении разрешенного программного обеспечения
US20150180872A1 (en) * 2013-12-20 2015-06-25 Cube, Co. System and method for hierarchical resource permissions and role management in a multitenant environment

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104868B2 (ja) * 1988-04-08 1995-11-13 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ記憶検索システム
US5261102A (en) * 1991-03-28 1993-11-09 International Business Machines Corporation System for determining direct and indirect user access privileges to data base objects
US5504814A (en) * 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5694590A (en) * 1991-09-27 1997-12-02 The Mitre Corporation Apparatus and method for the detection of security violations in multilevel secure databases
US6134558A (en) * 1997-10-31 2000-10-17 Oracle Corporation References that indicate where global database objects reside
US6202066B1 (en) 1997-11-19 2001-03-13 The United States Of America As Represented By The Secretary Of Commerce Implementation of role/group permission association using object access type
US6125447A (en) * 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6446206B1 (en) 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
US6105066A (en) 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system with central application management and using fully qualified class names of object-oriented applications for determining permanent server storage locations for application configuration information
US6381605B1 (en) 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
AU2001242790A1 (en) * 2000-03-27 2001-10-08 Sanyo Electric Co., Ltd. Data distribution server, terminal, and data distribution system
US6732100B1 (en) * 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US6795450B1 (en) 2000-09-28 2004-09-21 Tdk Semiconductor Corporation Method and apparatus for supporting physical layer link-suspend operation between network nodes
US20020107889A1 (en) * 2001-02-08 2002-08-08 Tilion Corporation Markup language routing and administration
US7051039B1 (en) * 2001-09-28 2006-05-23 Oracle International Corporation Mechanism for uniform access control in a database system
US7240046B2 (en) 2002-09-04 2007-07-03 International Business Machines Corporation Row-level security in a relational database management system
US7266702B2 (en) * 2002-10-21 2007-09-04 Solid Information Technology Oy Method and system for managing security material and services in a distributed database system
US7127461B1 (en) * 2002-11-27 2006-10-24 Microsoft Corporation Controlling access to objects with rules for a work management environment
US7529811B2 (en) * 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
US7251822B2 (en) 2003-10-23 2007-07-31 Microsoft Corporation System and methods providing enhanced security model
US7661141B2 (en) * 2004-02-11 2010-02-09 Microsoft Corporation Systems and methods that optimize row level database security
US7200595B2 (en) * 2004-03-29 2007-04-03 Microsoft Corporation Systems and methods for fine grained access control of data stored in relational databases
US7490347B1 (en) * 2004-04-30 2009-02-10 Sap Ag Hierarchical security domain model
US8990254B2 (en) * 2004-07-02 2015-03-24 Ellie Mae, Inc. Loan origination software system for processing mortgage loans over a distributed network

Also Published As

Publication number Publication date
RU2007140924A (ru) 2009-05-10
US20060253443A1 (en) 2006-11-09
TW200639673A (en) 2006-11-16
EP1875389A4 (en) 2009-07-01
RU2413978C2 (ru) 2011-03-10
EP1875389B1 (en) 2016-08-03
BRPI0609954A2 (pt) 2010-05-11
KR20080013856A (ko) 2008-02-13
CN101375275B (zh) 2013-02-13
AU2006241479A1 (en) 2006-11-09
ES2600745T3 (es) 2017-02-10
TWI399662B (zh) 2013-06-21
US8326877B2 (en) 2012-12-04
WO2006118662A2 (en) 2006-11-09
IL186068A0 (en) 2008-01-20
JP2008541226A (ja) 2008-11-20
NO20074868L (no) 2008-01-23
SG161277A1 (en) 2010-05-27
AU2006241479B2 (en) 2012-05-03
MX2007012421A (es) 2007-10-19
ZA200707971B (en) 2008-12-31
CA2602315A1 (en) 2006-11-09
IL186068A (en) 2013-03-24
WO2006118662A3 (en) 2007-11-22
EP1875389A2 (en) 2008-01-09
KR101292430B1 (ko) 2013-07-31
NZ561945A (en) 2010-09-30

Similar Documents

Publication Publication Date Title
CN101375275B (zh) 基于区域的安全性
CN1860723B (zh) 提供增强的安全模型的系统与方法
US8032573B2 (en) System and method for managing and updating data from a number of sources for a project
US6609133B2 (en) Integrating both modifications to an object model and modifications to a database into source code by an object-relational mapping tool
US6026401A (en) Locking tool data objects in a framework environment
Soares et al. Nested composite nodes and version control in an open hypermedia system
US8010909B1 (en) Derived hierarchy methods and system for definition, visualization and editing of data
JPH06259472A (ja) マルチメディア情報システム
US20070255685A1 (en) Method and system for modelling data
KR100313844B1 (ko) 프레임워크환경에서도구데이터객체를로킹하는메카니즘
CN101630331B (zh) 透明ejb支持和水平数据分割
US20110029577A1 (en) Computer program product and method for sharing information between multiple computer applications using a grafted model network
EP0841612A2 (en) Framework for software development
US20090030870A1 (en) Error propagation in object-relational mapping platform
US6954895B1 (en) Method and apparatus for using and storing objects
CN110083339A (zh) 一种新型计算机编程语言
US20220179825A1 (en) Method of interoperability for data hubs based on active metadata management
US7809702B2 (en) Generating from application modifications commands to modify the objects in a repository
Geetha et al. Semantic Multi-granular Lock Model for Object Oriented Distributed Systems
WO2004057500A2 (en) Modelling tool
JPH10301782A (ja) フレームワーク機構

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130213

Termination date: 20210309

CF01 Termination of patent right due to non-payment of annual fee