属性相关的访问控制策略制造技术

技术编号:2841893 阅读:171 留言:0更新日期:2012-04-11 18:40
一种用于执行数据库命令的方法,包括以下计算机可执行的步骤:    接收引用一组数据库对象的属性的数据库命令;    确定该组属性中的哪些属性在所述数据库命令中被引用;以及    根据所引用的那些属性,确定在执行所述数据库命令之前是否修改所述数据库命令。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据库,更具体地,涉及控制对数据库内的信息的访问。
技术介绍
数据库中的数据被保存在一个或多个数据容器中,每个容器都包括记录,并且每个记录中的数据被组织成一个或多个字段。在关系数据库系统中,数据容器被称作表,记录被称作行,及字段被称作列。在面向对象的数据库中,数据容器被称作数据库对象,记录被称作对象,及字段被称作属性。其它数据库结构可能会采用其它术语。实施本专利技术的系统不局限于任何特殊类型的数据容器或数据结构。在很多情况下,有可能希望防止所有的用户访问特殊表的所有行。例如,在表中的一些行可以包含英文文本,而其它行包含西班牙文文本。在此情况下,很容易限定英语用户访问包含英文的行,以及限定西班牙语用户访问包含西班牙语的行。出于安全起见,还可能希望限制对特定行的访问。例如,表的特定行可能包括绝密信息,其它行可能包括秘密信息,而其它行包括非保密信息。在这些情况下,任何给定用户可用的行都可以通过该用户的安全许可来规定。上述的两种情况都需要数据的行级过滤,并且第二种情况还需要该过滤执行访问控制策略。要执行行级访问控制策略,数据库服务器必须具有一种机制,用于将用户限制在表中的行的特殊子集中。一种用于实现行级访问控制策略的技术涉及使得对所有对表的访问间接地通过“窗口”(View)来执行。当用户属于相对较少数量的类别时,窗口提供了简便的方法来提供行级访问控制。例如,如果只是根据语言将用户分类,并且仅支持两种语言,那么仅需要创建两个窗口。然而,许多访问策略要求基于多个标准将用户分成多个种类。在这些情况下,必须被创建并被维护的窗口的数量使得基于窗口的方法执行策略不切实际。另一种选择性地限制用户可以看到的信息的方法涉及一种机制,动态地将谓词附加至查询,其中,是根据策略来附加谓词。例如,数据库系统检测到发布的查询与数据库对象相抵触(against)。在执行查询之前,调用与该数据库对象相关的策略函数。策略函数基于与数据库对象相关的策略,通过选择性地对该查询添加零个或多个谓词,来创建改进查询。然后执行该改进查询。在美国专利第6,487,552中详细地描述了动态附加谓词的方法。以上所讨论的方法限制了返回数据的行,并因此以下被共同地称作“行级访问控制策略方法”。对于这些行级访问控制策略方法而言,一个共同的特性是全部限制或者无限制特性。特别地,对于表的任何给定行,用户或者可以访问所有的信息,或者不可以访问任何信息。为了说明行级访问控制策略方法的全部限制或无限制的特性,假定有如图1所示的数据库表t2。表t2保存了一个公司的雇员的信息。在数据库表t2中,行111-117中的每一行都保存了特定雇员的信息,并且每一列都保存了一种特定类型的信息。行111保存了名为“Chris”的雇员的信息。Chris雇员号码为056395,在部门J21,其社会安全号码为506-93-2456,工资为270,230,并且是经理。行级访问控制策略方法可以用来允许每个部门经理查看对应于其部门成员的行,并限定不是经理的人只可查看包括他们自己的信息行。假设Chris是部门J21的经理,Cheryl和Craig在Chris的部门,上述规定的策略允许Chris访问在行111、112、和114中的所有信息,但是阻止Cheryl和Craig查看除他们自己的信息外的任何信息。具体地,Cheryl可以查看行112的所有信息,但是不可以查看行111和114的信息,而Craig可以查看行114的所有信息,但是不可以查看行111和112的信息。不幸地,行级访问策略方法的所有或无的性质可能不够灵活以致不能满足公司的需要。例如,可能希望所有的雇员可以访问所有其他雇员的姓名、雇员号码、以及部门号码,但是仅允许雇员访问自己的工资。然而,每个人的工资信息与雇员的姓名可以在同一行。因此,允许用户访问雇员姓名的行级策略必然允许用户访问该雇员的工资信息。相反地,阻止用户访问雇员工资信息的策略必然阻止用户访问雇员的姓名。由上所述,显然希望提供一种机制,用于实现克服现有行级访问控制策略方法的全部或没有限制的访问控制策略。在该部分中描述的方法是可执行的方法,但不必是前面已经想到或执行的方法。因此,除非指出,否则不应仅因为在该部分中描述的任何方法包括在该部分中,就认为其为现有技术。附图说明通过实例来描述本专利技术,但是不局限于此,在附图中相同的参考标号表示类似的元件,其中图1示出了包括一个公司的雇员信息的数据库表;图2示出了用于控制对数据库中的信息进行访问的计算机系统的结构图;以及图3示出了一种可实施本专利技术实施例的计算机系统的结构图。具体实施例方式本专利技术描述一种用于控制对数据库中的信息进行访问的方法和装置。在下面的描述中,为了解释的目的,描述了多个特定的细节,以对本专利技术有彻底的了解。然而,很显然,在没有这些特定细节的情况下,本专利技术也可以被实现。在其它的实例中,以结构图形式示出了已知的结构和设备,以避免不必要地模糊本专利技术。功能和系统概述图2是示出根据一个实施例的用于控制对数据库中信息的访问的系统200的结构图。系统200包括数据库应用程序220,用户210可以用数据库应用程序向数据库240请求信息。数据库应用程序220被设计为响应于用户交互,向数据库服务器230发布请求221。数据库服务器230将来自数据库240的表t2的被请求信息提供给数据库应用程序220。为了解释的目的,用图1中所示的表t2表示数据库240。然而,在此描述的机制可以被任何数据库表使用。表t2是数据库对象,并且表t2中的列是数据库对象的一组属性。根据一个实施例,提供了一种支持包括特定属性限制(attribute-specific restriction)的访问策略的机制。这样的策略可以指定,例如,该组属性中的一个或多个属性仅在特定条件下可以被访问。被施加了这些限制的属性在下文中被称作“受限属性(restricted attribute)”。为了解释的目的,假设查询221引用(reference)表t2的一个或多个属性。由查询221引用的属性在下文中被称作“被引用属性(referenced attribute)”。部分地,根据查询221的被引用属性是否包括表t2的任何受限属性,来确定数据库230如何处理查询221。根据一个实施例,确定查询221是否引用一个或多个数据库对象的受限属性。例如,如果查询221引用一个或多个受限属性,那么可以修改查询221,以限制返回给用户210的行。然而,如果查询221没有引用受限属性,则不修改查询221以限制返回给用户的行,以下将更详细地描述。根据另一实施例,数据库230在不限制返回给用户的行的情况下,限制用户210查看受限属性的数据。相反地,如以下将更详细描述的那样,通过将查询的结果组返回给用户210之前,屏蔽查询的结果组,来防止对受限信息的访问。当使用屏蔽来防止用户查看受限属性的值时,可以选择性地执行屏蔽,使得用户可以查看某些行的受限属性的值,但是防止用户查看其它行的受限属性的值。通常,表元数据241包括描述数据库表(例如表t2)的信息。例如,表元数据241可以包括描述表t2的属性的数据以及可以保存在表t2中的数据类型。在所示实施例中,表元数据241还包括策略元数据242,表示应用于表t2本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于执行数据库命令的方法,包括以下计算机可执行的步骤接收引用一组数据库对象的属性的数据库命令;确定该组属性中的哪些属性在所述数据库命令中被引用;以及根据所引用的那些属性,确定在执行所述数据库命令之前是否修改所述数据库命令。2.根据权利要求1所述的方法,其中,所述确定是否修改所述数据库命令的步骤包括确定所述数据库命令是否引用受限属性的步骤。3.根据权利要求2所述的方法,其中,所述确定是否修改所述数据库命令的步骤包括根据在所述数据库命令中引用所述受限属性的位置,来确定是否修改所述数据库命令的步骤。4.根据权利要求2所述的方法,其中,所述确定是否修改所述数据库命令的步骤还包括基于所述受限属性是否在所述数据库命令的选择列表中,来确定是否修改所述数据库命令的步骤。5.根据权利要求2所述的方法,其中,所述确定是否修改所述数据库命令的步骤还包括基于所述受限属性是否在所述数据库命令的过滤列表中,来确定是否修改所述数据库命令的步骤。6.根据权利要求1所述的方法,还包括响应于确定是否修改所述数据库命令,来修改所述数据库命令的步骤。7.根据权利要求6所述的方法,其中,所述修改数据库命令的步骤还包括基于属性限制元数据,将一个或多个谓词添加至所述数据库命令的步骤。8.根据权利要求1所述的方法,还包括接收表示该组属性中的哪些属性是受限制的数据的步骤。9.根据权利要求8所述的方法,其中,所述接收所述数据的步骤还包括使用应用程序接口接收所述数据的步骤。10.根据权利要求1所述的方法,其中,所述确定是否修改所述数据库命令的步骤包括将一个或多个受限属性与一个或多个被引用属性相比较,以确定所述一个或多个被引用属性中的哪些属性是...

【专利技术属性】
技术研发人员:李春熺王敏雄托马斯·基夫
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1