著录项信息
专利名称 | 控制对由应用程序限定的专用操作的执行的方法 |
申请号 | CN200380104429.5 | 申请日期 | 2003-11-06 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2006-01-04 | 公开/公告号 | CN1717656 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/46 | IPC分类号 | G;0;6;F;9;/;4;6;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 甲骨文国际公司 | 申请人地址 | 美国加利福尼亚州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 甲骨文国际公司 | 当前权利人 | 甲骨文国际公司 |
发明人 | 萨姆·伊迪库拉;尼普恩·阿加瓦尔;拉维·默西 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 余刚 |
摘要
用于支持在由应用程序执行的专用操作上的存取控制的技术包括在不同于应用程序的服务器接收第一数据。该第一数据描述用于执行第一组专用操作的第一组特权。也在服务器接收第二数据。该第二数据使应用程序的第一用户与在第一组特权中的特权相关联。响应于在服务器从应用程序接收的请求,根据第一数据和第二数据确定特定用户是否可使应用程序执行特定专用操作。请求指示特定用户和特定专用操作。响应被发送到应用程序。该响应指示特定用户是否可使应用程序执行特定专用操作。
1.一种用于控制对由应用程序限定的专用操作的执行的方法,包
括以下步骤:
在不同于所述应用程序的服务器进程处接收特权信息,
其中所述特权信息包括描述用于执行多个应用程序专用操作 的特定组的特权的第一数据;
使所述服务器进程根据所述特权信息确定在一组特定条 件下是否允许特定专用操作;以及
使所述服务器进程将在该组特定条件下是否允许所述特 定专用操作的指示传送到所述应用程序。
2.根据权利要求1所述的方法,其中,所述接收特权信息的步骤 还包括在所述服务器进程处接收使所述应用程序的用户与在 所述特定组的特权中的一个或多个特权相关联的第二数据。
3.根据权利要求1所述的方法,还包括以下步骤:
响应于在所述服务器进程处从所述应用程序接收用于指 示特定用户和特定专用操作的请求,根据所述特权信息确定所 述特定用户是否可使所述应用程序执行所述特定专用操作;以 及
其中,使所述服务器进程将指示传送给所述应用程序的 步骤包括将指示所述特定用户是否可使所述应用程序执行所 述特定专用操作的响应发送到所述应用程序的步骤。
4.根据权利要求3所述的方法,其中:
所述接收特权信息的步骤还包括接收使第一组特权与在 其上执行所述多个专用操作的第一类数据项相关联的第一数 据;以及
所述接收所述请求的步骤还包括接收还指示特定数据项 的请求;以及
所述确定所述特定用户是否可使所述应用程序执行所述 特定专用操作的步骤还包括确定所述特定数据项是否是所述 第一类数据项中的成员。
5.根据权利要求4所述的方法,其中:
所述方法还包括在所述服务器进程处接收第三数据,所 述第三数据用于描述用于在不同于所述第一类数据项的第二 类数据项上执行第二多个专用操作的第二组特权;以及
所述确定所述特定用户是否可使所述应用程序执行所述 特定专用操作的步骤部分是根据特定类型的所述特定数据项 执行的。
6.根据权利要求1所述的方法,所述接收特权信息的步骤包括接 收可扩展标记语言形式的文档。
7.根据权利要求3所述的方法,所述确定所述特定用户是否可使 所述应用程序执行所述特定专用操作的步骤还包括管理在用 于储存信息的高速存储器中的高速缓存的步骤,所述信息使一 个或多个用户中的每个用户与在一组或多组特权的每组中的 一个或多个特权相关联。
8.根据权利要求7所述的方法,所述管理所述高速缓存的步骤还 包括在所述高速缓存中储存指示与每个用户相关联的一类数 据项的数据的步骤。
9.根据权利要求1所述的方法,其中,所述特定组的特权形成两 层或多层特权的第一层次。
10.根据权利要求7所述的方法,所述管理所述高速缓存的步骤还 包括在所述高速缓存中储存每个用户的位图,其中:
每组特权形成一层或多层特权的一个层次;
在所述位图中的每个不同位置对应于在所述一组或多组 特权的每个层次中的一个不同叶节点;以及
叶节点是不具有任何子节点的层次的节点。
11.一种用于控制对由应用程序限定的专用操作的执行的方法,包 括以下步骤:
将特权信息传送到不同于所述应用程序的服务器进程,
所述特权信息包括描述用于执行第一多个应用程序专用操作 的第一组特权的第一数据;
将请求从所述应用程序发送到所述服务器进程,使服务 器进程根据所述特权信息确定在一组特定条件下是否允许特 定专用操作;
从所述服务器进程接收在该组特定条件下是否允许所述 特定专用操作的指示;以及
如果所述服务器进程指示在该组特定条件下允许所述特 定专用操作,则所述应用程序只允许所述特定专用操作。
12.根据权利要求11所述的方法,其中:
将特权信息传送到服务器进程的步骤包括:
将第二数据发送到不同于所述应用程序的服务器进程,
所述第二数据用于使所述应用程序的第一用户与在所述第一 组特权中的特权相关联。
13.根据权利要求12所述的方法,还包括以下步骤:
在所述应用程序处接收来自特定用户的命令,所述命令 包括使所述应用程序执行特定专用操作;
将指示所述特定用户和所述特定专用操作的请求发送到 所述服务器进程;
其中,从所述服务器进程接收在所述组特定条件下是否 允许特定专用操作的指示的步骤包括:根据所述第一数据和所 述第二数据从所述服务器进程接收指示所述特定用户是否可 使所述应用程序执行所述特定专用操作的响应;以及
只有所述响应指示所述特定用户可使所述应用程序执行 所述特定专用操作时,执行所述特定专用操作。
14.根据权利要求13所述的方法,其中:
所述传送包括所述第一数据的所述特权信息的步骤还包 括发送还使所述第一组特权与在其上执行所述多个专用操作 的第一类数据项相关联的第一数据;以及
所述发送所述请求的步骤还包括发送还指示特定数据项 的所述请求;以及
根据所述第一数据和所述第二数据接收所述响应的步骤 还包括还根据所述特定数据项是否为所述第一类数据项中的 成员接收所述响应。
15.根据权利要求14所述的方法,其中:
所述方法还包括将第三数据发送到所述服务器进程,所 述第三数据用于描述用于在不同于所述第一类数据项的第二 类数据项上执行第二多个专用操作的不同的第二组特权;以及
所述发送所述第二数据的步骤还包括发送还使所述应用 程序的第二用户与在所述第二层次的特权中的特权相关联的 第二数据;以及
根据所述第一数据和所述第二数据接收所述响应的步骤 还包括接收还根据特定类型的所述特定数据项是否与用于包 括所述特定专用操作的特定多个专用操作的一组特定特权相 关联的响应。
16.根据权利要求11所述的方法,所述传送特权信息的步骤还包 括发送可扩展标记语言形式的文档。
17.根据权利要求12所述的方法,其中,应用程序不管理在用于 储存信息的高速存储器中的高速缓存,所述信息使一个或多个 用户中的每个用户与在包括所述第一组特权的一组或多组特 权的每组中的一个或多个特权相关联。
18.根据权利要求11所述的方法,其中,所述第一组特权形成两 层或多层特权的第一层次。
技术领域\n本发明涉及控制用户对应用程序操作的存取,尤其涉及用不同 于应用程序的服务器控制用户对应用程序的操作的存取。\n背景技术\n计算机进程交互的客户-服务器模式被广泛应用。根据客户-服 务器模式,客户进程将包括请求的消息发送至服务器进程,并且服 务器进程通过提供服务做出响应。服务器进程也可将具有响应的消 息返回至客户进程。客户进程和服务器进程经常在不同的计算机设 备(所谓的主机)上执行,并且使用一个或多个网络通信协议通过 网络进行通信。\n术语“服务器”通常指的是提供服务的进程,或在其上运行该进 程的主计算机。相似地,术语“客户”通常指的是作出请求的进程, 或在其上运行该进程的主计算机。除非在上下文中另有说明,在此 中所用的术语“客户”和“服务器”指的是进程,而不是主计算机。\n响应于来自数据库客户的请求,数据库服务器提供数据库服 务。例如,数据库服务器将在请求中接收到的数据写入在由数据库 服务器管理的特定数据库中的一个或多个数据容器;或者,从一个 或多个满足请求中指定的条件的那些容器取回数据;或者,两者全 有。在许多情况下,数据库客户是不同于数据库服务器的中间层应 用程序,该应用程序对一个或多个应用程序用户执行诸如会计服务 的其它服务。应用程序本身可被配置用于客户-服务器操作,由此应 用程序用户操作作出应用程序请求至应用程序服务器的应用程序 客户。\n不是数据库服务器的所有用户都被授权存取在由数据库服务 器管理的所有数据库对象中的所有数据。因此,数据库服务器通常 执行控制数据库用户对数据库中的数据的存取的存取控制。已知有 多种存取控制机制:例如,在Murthy中描述的统一存取控制机制 提供对数据内容的存取控制,该数据内容类似将被组织在存储容器 的层次中的数据库用户,或者类似将被组织在具有限定列的表格的 相关数据库中的数据库用户,或者两者均有。\n存取控制经常作为执行数据库操作的特权,其带有一组对于在 数据库中的多个数据项中的特定数据项或组的与数据库的各用户 相关的一个或多个特权。例如,限定基本特权用于执行基本数据库 操作,诸如读取、插入、删除可驻留在诸如表格的数据库对象中的 数据项的数据的操作,或创建、修改或删除数据库对象自身的操作。\n执行基本数据库操作的特权与数据库的若干层(level)的特定 层相关。数据库的层包括,例如,数据项层、若干数据项的数据库 对象层、若干数据库对象的层次的节点层、以及数据库对象的若干 派生节点的亲代节点层。当特权与特定层相关时,特权可在该层应 用于所有的项。\n在一些数据库管理系统中,可限定特权的层次,在层次中的各 节点表示执行在一个或多个数据库层上的基本操作的特定组合的 特权。为了支持该层次的特权,在一些数据库管理系统中的数据库 服务器提供基本结构以描述特权,使用户和数据项与特权相关,并 有效储存和取回在高速存储器缓冲中关于特权的信息以快速确定 数据库用户是否可执行在请求的数据项或数据库对象上的请求的 数据库操作。\n根据执行数据库操作的特权支持对数据库的存取控制的基本 结构在数据库操作的粒度下提供存取控制。然而,当需要根据在使 用数据库的应用中限定的操作控制存取时,在粒度的数据库操作层 提供存取控制的能力不是特别有用。这样的操作在此中被称为“专 用(application-specific)”操作。\n例如,在管理企业的定购单的应用程序中,专用操作包括:创 建新的定购单,批准定购单,发行定购单以进行购买,使发票与特 定的定购单相关,确认收到已发送的定购单,以及通过支付相关的 发票清除定购单。如果将特权给予特定应用程序用户以执行这些专 用操作中的一些,而不是其它的,随后必须在粒度的专用操作层提 供存取控制。由于存取控制的粒度的该层不通过数据库服务器提 供,使用专用操作的特权的每个应用程序的开发者必须设计并执行 管理用于不同用户的不同特权的存取控制软件。\n存在若干为每个应用程序开发存取控制软件方面的不足。一个 不足在于由于开发资源被消耗以产生执行存取控制的软件,开发应 用程序的成本增加。存取控制越复杂,开发成本越高。相反地,开 发存取控制上的花费越少,执行的存取控制越简单。另一不足在于 为新应用程序开发存取控制通常不如经过多年用于一些系统和服 务器上的已经开发的存取控制有效。例如,一些数据库服务器随使 用最小计算资源的存取控制而发展,其包括使用指示用户特权的数 据的有效高速缓存。\n此外,具有独立开发的存取控制机制的多个应用程序的管理员 可能不得不对付用于表示特权的层次和表示具有那些特权的应用 程序用户和数据项的关系的不同接口。如果可跨过多个应用程序得 到相同存取控制基本结构,那些多个应用程序的管理员可更容易地 进入与特权和相关用户和数据项相关的信息,具有较低浓度和较少 错误。\n根据上述描述,明显需要可应用到数据库应用程序的数据库服 务器的有效存取控制机制。通常地,需要使在分离的服务器中执行 的复杂且有效的存取控制机制可应用到任何应用程序中。\n可以继续本节中所描述的方法,但不是已被构思和继续的必要 的方法。因此,除非在此另有说明,在此部分中描述的方法不能仅 因为在此背景技术部分中出现这些方法,就认为是本申请的权利要 求中的现有技术。\n附图说明\n本发明在附图中以举例而不是限制的方式加以阐明,附图中相 同的附图标记指相同的元件,其中:\n图1是示出执行专用操作的特权的典型层次的框图;\n图2是示出根据实施例的用于支持用分离的数据库服务器在专 用操作上的存取控制的系统的框图;\n图3是示出根据实施例的用于支持用分离的服务器在专用操作 上的存取控制的方法的实施例的流程图;以及\n图4是示出在其上可执行本发明实施例的计算机系统的框图。\n具体实施方式\n本发明描述了一种用于支持用分离的数据库服务器在专用操 作上的存取控制的方法和装置。在下面的描述中,出于解释的目的, 许多具体的细节被阐明以提供对本发明的彻底理解。然而,显而易 见,本发明可以在没有这些具体细节的情况下实施。在其它实例中, 已知的结构和装置以框图的形式示出,以避免对本发明造成不必要 的混淆。\n在数据库服务器和作为数据库客户的应用程序的下文中将描 述特定实施例。在上下文中,应用程序使用数据库服务器不仅存储 用于应用程序的数据,而且支持操作的存取控制,该操作不是数据 库操作,而是对应用程序特定的操作。本发明的实施例不限于本文, 但是可包括依靠任何分离的服务器以支持在专用操作上的存取控 制的任何应用程序。尽管应用程序和服务器是单独的进程,在一些 实施例中两者可在同一台计算机主机上执行。\n根据一实施例,专用操作的存取控制通过将描述用于执行第一 组专用操作的特权的第一层次的数据发送到服务器的应用程序来 实现。该应用程序还将使应用程序的第一用户和在特权的第一层次 中的特权相关的数据发送到服务器。为了确定特定用户是否被允许 执行特定专用操作,该应用程序将请求发送到服务器。该请求指示 特定用户和特定专用操作。响应于接收请求,根据先前从应用程序 接收的数据,服务器确定特定用户是否可使应用程序执行特定专用 操作。将响应发送到应用。该响应指示特定用户是否可使应用程序 执行特定专用操作。\n在这些技术的一些实施例中,由应用程序发送到服务器的数据 使应用程序的第一用户与用于在服务器中储存的特定类型数据项 的第一层次中的特权相关。在一些实施例中,应用程序可向服务器 提供若干不同用户、或若干不同数据项、或两者的特权信息。\n存取控制通常可表示为执行操作的特权层次。层次是众所周知 的数学结构。通常地,层次由在多层的节点组成。处于每个层的节 点各与在不同层的一个或多个节点相连接。在顶层以下层的每个节 点是上一层的一个或多个亲代节点的子节点。在树形层次中,每个 子节点只具有一个亲代节点,但是亲代节点可具有多个子节点。在 树形层次中,没有与之相连接的亲代节点的节点是根节点,并且没 有与之相连接的子节点的节点是叶节点。树形层次典型地具有单个 根节点。树形层次可用于描述包括一个或多个子特权的亲代特权。\n在特权的层次中,每个叶节点与执行一个其存取将被控制的专 用操作的特权相对应。执行多于一个专用操作的特权与在对应于多 于一个专用操作的叶节点的层次中的先辈节点相对应。\n图1是示出执行用于管理企业的定购单(PO)的应用程序的专 用操作的特权的典型层次100的框图。在典型层次100中,每个节 点110对应于执行与定购单(PO)相关的一个或多个专用操作的特 权。如果有,省略号111表示代表附加特权的附加节点。在其它实 施例中,特权的层次在更多或更少层可具有更多或更少的节点。\n在层次100中的每个叶节点与执行其存取将被控制的专用操作 中的一个的每个特权相对应。在所描述的实施例中,表格1中列出 用于单一专用操作的特权和对应叶节点。经应用程序的管理员的判 断,可将任何这些特权给予任何应用程序的用户。\n 表1.特权的实例层次 叶节点 特权名称 允许的单一专用操作 110b Generate_PO 创建带有卖方名称和地址的PO和来 自该卖方的项列表 110g Approve_Services 提供使用用于服务购买的PO的授权 110h Approve_Equipment 提供使用用于固定设备购买的PO的 授权\n 110i Approve_Supplies 提供使用用于物资购买的PO的授权 110d Purchase 通过向卖方发送批准的定购单实现 从卖方的定购 110j Accept_Services 表示在PO中递送的服务是可接受的 110k Accept_Equipment 表示在PO中递送的固定设备是可接 受的 110l Accept_Supplies 表示在PO中递送的物资是可接受的 110f Pay_under_PO 向卖方发送在PO中接受的递送的付 款\n层次100还包括表示多于一个专用操作的特权的亲代节点。在 亲代节点110c处称为Approve_PO的特权包括在节点110g、110h、 110i处分别批准服务、设备、和物资的特权。在亲代节点110e处称 为Accept_Delivery的特权包括在节点110j、110k、110l处分别接受 递送的服务、设备、和物资的特权。在该亲代节点处的特权可被给 予诸如部门领导的应用程序的特定管理用户。在节点110a处 PO_ALL的特权包括在节点110b、110c、110d、110e、110f处分别 产生PO、批准PO、作出带有批准PO的购买、接受PO中购买的 递送、以及为在PO中递送的购买付款的特权。PO_ALL的特权包 括执行关于定购单的所有专用操作的特权。\n结构概述\n图2是示出根据实施例的用于支持用分离的数据库服务器在专 用操作上的存取控制的系统200的框图。系统200包括应用程序 220、应用程序客户210、以及数据库服务器230。响应于来自一个 或多个应用程序客户210的一个或多个命令,应用程序220执行一 个或多个专用操作。\n数据库服务器230管理用于应用程序220的一个或多个数据库 对象的数据库。数据库服务器230包括永久存储器240和在数据库 服务器230的快速但不稳定的存储器中的高速缓存232。值得注意 的是数据库服务器230是进程。永久存储器240和高速缓存232是 分配给数据库服务器进程230的主机永久存储器和主机存储器的部 分。结果,使用主机的永久存储器的不同部分和主机的存储器的不 同部分或者在不同时间使用主机的存储器的相同部分,应用程序 220和数据库服务器230可在相同主机上执行。在数据库服务器永 久存储器240中,数据库服务器230储存一个或多个数据结构242、 244以及在一个或多个数据库对象(没有显示)中的一个或多个数 据项。数据结构242保存表示用于应用程序220的一个或多个特权 层次的数据。数据结构244保存将应用程序220的一个或多个用户 以及一个或多个数据项与在用于应用程序220的数据结构242中表 示的的一个或多个特权层次中的一个或多个特权相关的数据。尽管 在图2中示出两种数据结构,在其它实施例中数据结构242、244 中的数据可储存在较多或较少的数据结构中。\n功能概述\n根据所述的实施例,对客户而言,在应用程序220执行其存取 被控制的专用操作之前,应用程序220将请求发送到数据库服务器 230以确定与客户相关的用户是否具有使应用程序220执行在特定 数据项上的专用操作的特权。根据储存在数据结构242、244中的 请求和信息,数据库服务器230将响应发送回应用程序220。该响 应包括指示用户是否具有使应用220执行在特定数据项上的专用操 作的特权的数据。\n应用程序220的管理员提供在数据结构242、244中的信息。 在所示的实施例中,应用程序管理员使用可扩展标记语言 (Extensible Markup Language,XML)文档储存描述层次的数据。 XML是由万维网协会(World Wide Web Consortium,W3C)颁布 的标准定义的用于描述结构数据的众所周知且广泛使用的标记语 言,并且允许数据元素的任意树形层次。随后应用程序管理员与由 数据库服务器230提供的接口进行交互。该接口允许应用程序管理 员表示描述应用于数据项的每个数据项或组的层次的XML文档, 并允许表示在每个层次中应用于应用程序220的每个用户的一个或 多个特权。\n在一些实施例中,对于一个应用程序的若干特权层次的每一个 与专用操作所操作的数据项的相应类型相关。例如,特权层次100 与表示企业定购单的数据项相关,但是不与表示相同企业的人员记 录的数据项相关。在人员记录操作的特权在不同于特权层次100的 第二特权层次(没有显示)中表示。在该实施例中,数据结构242 中的数据使每个特权层次与被那些特权允许的操作所操作的一个 或多个类型数据项相关。\n用于支持专用操作上的存取控制的方法\n为了描述该方法,描述典型的实施例。在典型实施例中,应用 程序管理员生成描述用于在定购单对象上的专用操作的特权层次 的可扩展标记语言(XML)文档。在其它实施例中,其它结构数据 格式可用于表示特权的层次。\n在典型的实施例中,每个XML元素对应于代表在特权层次中 的特权的节点。表格2示出描述在图1中所示的典型层次100的典 型XML文档部分。\n表2.描述特权的典型层次的XML文档部分 行号 XML行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
...\n为了描述方便,假设具有在表格2中列出的行的XML文档储 存在应用程序220的主计算机上名为POprivileges.xml的文件中。 每个XML元素具有一个名称。XML元素的开始由将XML元素的 名称括在一起的符号“<”“>”表示。XML元素的结束由将XML元素 的名称括在一起的符号“”“>”表示。母元素的所有子元素都包括在 表示母元素的开始和结束的符号之间。当元素没有子元素时,可选 地,可以通过由符号“<”“/>”括在一起的元素名称表示。\n在表2的第1行和第17行描述的省略号表示在先于或后于第2 行至第16行的XML文档中的XML行。XML行2-16表示对应于 PO_ALL特权的名为“PO_ALL”的XML元素。PO_ALL元素包括五 个子元素:在第3行中的Generate_PO;在第4-8行中的Approve_PO; 在第9行中的Purchase;在第10-14行中的Accept_Delivery;和在 第15行中的Pay_under_PO。在第4-8行中的Approve_PO包括三 个子元素:在第5行中的Approve_Services;在第6行中的 Approve_Equipment;和在第7行中的Approve_Supplies。在第10-14 行中的Accept_Delivery包括三个子元素:在第11行中的 Accept_Services;在第12行中的Accept_Equipment;和在第13行 中的Accept_Supplies。由此,具有在表2中描述的部分的XML文 档描述在图1中所描述的定购单操作的特权层次110。\n图3是示出根据实施例的用于支持用分离的服务器在专用操作 上的存取控制的方法300的实施例的流程图。尽管在图3中示出步 骤的特定次序,在其它实施例中,步骤可按不同次序执行或可在时 间上重叠。例如步骤310和320可在时间上重叠。\n在步骤310中,服务器接收表示用于执行在多种类型数据项上 的专用操作的特权层次的数据。可使用任何用于接收特权层次的方 法。例如,在步骤310中,应用程序管理员形成具有表格2所示的 行的XML文档,将文档储存在文件POprivileges.xml中,并且利用 数据库服务器存取控制接口表示应该由数据库服务器使用在文件 POprivileges.xml中的特权的层次支持的专用存取控制。在一些实施 例中,数据库服务器存取控制接口为诸如技术领域中众所周知的超 文本标识语言(HyperText Markup Language,HTML)页的图形用 户接口,其提示用户输入特定专用存取控制。在一些实施例中,数 据库服务器存取控制接口为在技术领域中众所周知的应用编程接 口(Application Programming Interface,API),其包括程序和参数的 名称与类型,调用该程序和参数以执行数据库服务器存取控制功 能。在其它实施例中,采用到服务器的其他接口。\n在一些实施例中,为相同应用程序接收多于一个特权层次。例 如,如果应用程序为企业系统,该应用程序可不但包括用于定购单 系统的特权层次,而且包括诸如人力资源系统、设备管理系统、产 品制造跟踪系统、和批发销售系统的其它系统的特权层次。应用到 不同系统的层次通常指的是在数据库中由应用程序储存的不同类 型数据项上的专用操作。例如,在图1中示出的特权层次指的是在 表格1中列出的在数据库中定购单数据库对象上操作的操作,而人 力资源的特权层次指的是在数据库中个人数据库对象上的操作。\n在带有多于一个特权层次的一些实施例中,在步骤310中,每 个特权层次与一个类型的数据项相关,并且该类型的数据项还被认 为是表示特权层次的数据。例如,由表2中XML行指示的层次与 由数据库服务器230为应用程序管理的数据库中的定购单数据库对 象相关。在一些实施例中,关联在XML文档中实现;在一些实施 例中,关联在到数据库服务器存取控制系统的接口处实现。在一些 实施例中,相同应用程序的不同层次通过诸如层次名称的其它方法 进行区分。\n在步骤320中,服务器接收表示每个用户和多个数据项中的数 据项或组的特权的数据。可使用接收该数据的任何方法。例如,在 步骤320中,应用程序管理员形成第二XML文档,将用户身份(“user ID”)与在特权层次100中的一个或多个特权相关,并且采用数据 库服务器存取控制接口表示第二XML文档使用户与特权相关。该 接口可为诸如HTML页、API、或用于向服务器提供数据的其它接 口的图形用户接口。在一些实施例中,XML文档指定用于Murthy 的统一存取控制系统的存取控制表(ACL),使用诸如以下表格3 所示的XML行。在表3中,使客户命令应用程序做出造成将请求 被控制的专用操作的事情的用户被称作“委托人”;一个委托人具有 用户ID“SCOTT”并且另一个委托人具有用户ID“PETER”。在表格3 中,每个ACL包括一个或多个存取控制部件(Access Control Elements,ACE)。每个ACE包括一个为委托人命名的委托人部件 和一个特权部件。特权部件包括一列一个或多个在特权层次中通过 它们名称识别的特权。在第1和19行中的省略号表示ACL之前和 之后的其它XML行。在第17行中的省略号表示指定其它ACE的 其它XML行。\n表3.描述每个用户的特权的XML文档部分 行号 XML行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
SCOTT PETER ... ...\n如表3的典型ACL中所示,用户SCOTT可产生PO并接受物 资的传递,而用户PETER可批准任何种类的PO并授权对卖方的付 款。\n在具有多层次的实施例中,在步骤320中指定每个层次中的用 户特权。例如,如果使用ACL,将有一组在应用于定购单数据项的 定购单层次中指定特权的ACL和另一组在应用于人力资源数据项 的人力资源层次中指定特权的ACL。\n在步骤340中,服务器从应用程序接收存取控制请求。该请求 包括表示特定用户和特定专用操作的数据以及将在其上执行操作 的数据项。在只有一个应用于所有数据项的层次的实施例中,该数 据项可被忽略。在具有用于一个应用的多层次的实施例中,根据该 类型的数据项从数据项中推断出将被应用的特权层次。一种类型的 数据项表示一个或多个数据项或数据库对象。在一些实施例中,表 示特定专用操作的数据是表示一个或多个专用操作的特定特权的 数据。\n为了说明的目的,假设用户SCOTT通过客户210a操作应用程 序220,并且用户PETER通过客户210b操作应用程序220。还假 设用户SCOTT尝试批准特定定购单,在下文中指定为“PO12345”, 用户SCOTT刚好已经产生该定购单用于办公物资。这导致应用程 序220产生包括表示用户SCOTT在定购单数据项PO12345上尝试 执行需要Approve_Services特权的专用操作的数据的存取控制请 求。在步骤340中数据库服务器接收请求。\n在步骤350中,服务器根据与特定数据项的特定用户相关的特 权确定应用程序是否可执行特定用户的特定操作。例如,数据库服 务器230根据与用于在与定购单数据项相关的层次中的定购单数据 项的SCOTT相关的特权确定应用程序220是否可执行需要SCOTT 的Approve_Services特权的操作。\n在步骤350中,服务器确定适当的层次。例如,数据库服务器 230根据由数据库服务器230保存的数据库元数据确定PO12345是 定购单型数据库对象。随后,数据库服务器230确定在步骤310中 接收的特权层次(在表格2中部分列出的XML文档中)是适当的 层次。\n在步骤350中,服务器确定用户是否具有在请求中表示的特权。 例如,数据库服务器230确定在表格3中列出的ACL中的用户 SCOTT出现在用于定购单数据项的第3-9行处ACE中,但是特权 Approve_Services没有列在第5-8行所列的特权之中。因此,用户 SCOTT不具有执行该专用操作的特权。\n在步骤390中,服务器将响应发送回应用程序。该响应包括表 示应用程序是否可执行特定用户的特定操作的数据。例如,数据库 服务器230将表示应用程序220不应该执行与客户210a相关的用 户SCOTT的批准服务操作的响应发送回应用程序220。根据该响 应,应用程序不执行该操作。在一些实施例中,应用程序将消息发 送给用户的客户,根据该响应,用户不允许执行专用操作。例如, 根据该响应,应用程序220将消息发送给客户210a,不允许用户 SCOTT批准用于服务的定购单。\n用位图表现用户特权\n在步骤350中,如上所述,服务器确定用户是否具有在请求中 表示的特权。在高速存储器的高速缓存中保存操作应用程序的有效 客户的用户的特权是有利的。储存在高速缓存中的用户特权越多, 服务器可响应支持专用操作的存取控制的请求越快。用户特权可表 示的越紧密,可存储在高速缓存中的用户越多。根据实施例,服务 器在高速缓存中使用位图表示与每个用户相关的特权。例如,数据 库服务器230在高速缓存232中使用位图储存用户特权。\n在该实施例中,服务器将在层次中的每个叶节点与比特位置相 关。例如,在表格1中列出的层次100的九个叶节点与比特位置1 至9相关。当服务器接收表示授权给特定用户的特权的数据(包括 从永久存储器中读取该数据)时,服务器将对应于授权的特权的比 特设置成“ON”值,例如“1”,并且将对应于未授权的特权的比特设 置成“OFF”值,例如“0”。当对应亲代节点的特权被授权时,与为该 亲代节点的分支的所有叶节点对应的比特被设置成ON值。例如, 授权给在表格3中列出的XML行中用户SCOTT和PETER的特权 由在表格4中列出的位图表示,其中比特位置从右(最不重要的比 特)至左(最重要)计算。\n表4.表示在图1的层次中授权的特权的典型位图 用户ID 位图 SCOTT 010000001 PETER 100001110\nSCOTT被授予产生PO的特权,第一叶节点110b,所以ON 值“1”被设置在第一(最右)比特中。SCOTT还被授予接受传递的 物资的特权,第八叶节点110l,所以ON值“1”被设置在从右开始的 第八个比特中。PETER被授予批准PO的特权,其为叶节点110g、 110h、110i的亲代节点以分别批准服务、设备、以及物资。因此, 将对应三个叶节点110g、110h、110i的比特设置成ON值“1”。这 些比特处于从右开始的位图的第二到第四位置。PETER还被授予支 付传递的特权,第九叶节点110f,所以ON值“1”被设置在从右开始 的第九比特中,即最左比特中。\n在一些具有多层次的实施例中,所有层次的叶节点都集合在单 一位图中。在其它实施例中,不同层次的叶节点被集合在不同位图 中。在一些实施例中,可根据层次的名称和特权的名称用散列函数 确定比特位置。\n在一些使用位图的实施例中,在步骤350中,数据库服务器230 确定用于特定数据项的特定用户的位图是否已经在高速缓存232 中。如果是,可以消除从储存在永久存储器240上的数据取回位图 的操作。如果不是,从永久存储器240中取回用户的位图并且添加 到高速缓存232中。如果在高速缓存232中没有足够的空间放置取 回的位图,那么使用技术领域中已知的任一方法释放高速缓存232 中的空间。例如,分配给最近使用的位图的存储器可用于特定用户 的位图。\n随后数据库服务器230确定与专用操作的特权或在步骤340中 接收的存取控制请求中表示的特权相关的比特位置。例如,使用在 表格2中表示的层次,数据库服务器确定与Approve_Services特权 相关的批准服务操作与第二叶节点相关并因此与位图的第二比特 相关。\n在步骤350中,随后数据库服务器230确定在那个比特位置中 的比特是否被设置成ON值。例如,数据库服务器确定在表格4中 列出的SCOTT的位图中第二比特未被设置成ON值。因此,数据 库服务器确定SCOTT不具有批准服务的特权。\n如果数据库服务器230从PETER接收请求以批准PO12345, 在步骤350中,数据库服务器230确定在表格4中列出的PETER 的位图中第二比特被设置成ON值。因此,数据库服务器确定PETER 具有批准服务的特权。\n如在此所述,用于确定用户特权的高速缓存232和位图的使用 是很有效的。应用程序开发者可通过诸如数据库或内容管理服务器 的分离的服务器利用该有效的特权确定,不需要大量的软件开发。 应用程序管理员经常使用已经为分离的服务器建造的接口,简单地 一次提供特权的层次和分离的服务器的用户特权。开发新应用,或 更改现有应用以简单地将存取控制请求发送给分离的服务器。不需 要开发该应用以有效确定特权是否可用于专用操作。例如,不需要 开发应用以管理高速缓存232或形成用户特权的位图。\n硬件概述\n图4是描述可应用本发明的实施例的计算机系统400的框图。 计算机系统400包括用于传递信息的总线402或其它通信装置、用 于处理信息的与总线402连接的处理器404。计算机系统400还包 括主存储器406,例如随机存取存储器(RAM)或者其它动态存储 装置,与总线402连接,用于储存信息及处理器404要执行的指令。 主存储器406还可用于储存处理器404执行指令过程中的临时变量 或其他中间信息。计算机系统400还包括只读存储器(ROM)408 或者其他静态存储装置,与总线402连接,用于储存静态信息和处 理器404的要执行的指令。存储装置410,如磁盘或光盘,和总线 402连接以储存信息和指令。\n计算机系统400可以经由总线402连接到显示器412,如阴极 射线管(CRT),用于向计算机用户显示信息。包括字母数字键和其 他键的输入装置414与总线402相连,用于传递通信信息和命令选 择到处理器404。另一种用户输入装置是光标控制416,如鼠标、 跟踪球、或光标方向键,用于传递方向信息和命令选择到处理器404 及用于控制显示器412上的光标移动。这个输入装置通常在两个轴 上(第一个轴(例如X轴)和第二个轴(例如Y轴))具有两个自 由度,使装置能指定平面上的位置。\n本发明涉及用于实现在此描述的技术的计算机系统400的使 用。根据本发明的实施例,响应于处理器404执行在主存储器406 中包括的一个或多个指令的一个或多个序列,这些技术通过计算机 系统400执行。这样的指令可从诸如存储设备410的另一计算机可 读介质读入主存储器406。通过执行包含在主存储器406中的指令 序列,使处理器404执行此处所述的处理步骤。在可选实施例中, 硬连线电路(hard-wired circuitry)可取代软件指令或者与软件指令 结合来实施该发明。因此,本发明中的实施例将不限于硬件电路和 软件的任何特定组合。\n这里使用的术语“计算机可读介质”是指参与提供指令给用于 执行的处理器404的任何介质。这种介质可以采取很多形式,包括 但不限于非易失性介质、易失性介质和传递介质。非易失性介质举 例来说包括光盘或磁盘,如存储装置410。易失性介质包括动态存 储器,如主存储器406。传输介质包括同轴电缆、铜线、和光纤, 包括由总线402组成的导线。传输介质还可采取声波或光波的形式, 例如那些在无线电波和红外线数据通信过程中产生的声波和光波。\n通常的计算机可读介质举例来说包括软盘、柔性盘、硬盘、磁 带,或者任何其它磁性介质、CD-ROM、任何其它光介质、打孔纸、 纸带、或者任何带孔的物理介质、RAM、PROM、EPROM、 FLASH-EPROM、或者其他任何存储芯片或者磁带,或者以下提到 的载波、或者计算机可读的任何其他介质。\n各种形式的计算机可读介质可参与传送一个或者多个指令的 一个或多个序列到用于执行的处理器404。例如,指令开始可承载 远程计算机的磁盘中。远程计算机能将该指令加载到其动态存储器 中,然后使用调制解调器基于电话线发送信息。计算机系统400本 地的调制解调器可接收电话线上的数据,然后使用红外转换器将数 据转换成红外信号。红外探测器可以接收红外信号携带的数据,合 适的电路可以把信息放到总线402上。总线402把数据传递到主存 储器406中,处理器404从主存储器406取回并执行这些指令。在 处理器404执行这些指令之前或之后,主存储器406接收的指令可 随意地储存于存储装置410中。\n计算机系统400还包括连接到总线402的通信接口418。通信 接口418提供双向数据通信,连接到与局域网422相连的网络链路 420。例如,通信接口418可以是综合业务数字网(Integrated Services Digital Network,ISDN)卡或者调制解调器,用于提供到相应类型 电话线的数据通信连接。又如,通信接口418可以是局域网(Local Area Network,LAN)卡,用于提供至兼容局域网(LAN)的数据 通信连接。也可以使用无线链路。无论采用何种连接,通信接口418 均发送和接受承载各种信息的数字数据流的电信号、电磁信号和光 学信号。\n网络链路420通常可通过一个或者多个网络提供数据通信给其 它数据装置。例如,网络链路420可通过局域网422与主机424连 接,或者与互联网服务提供商(Internet Service Provider,ISP)426 操作的数据设备连接。ISP 426又通过目前通称为“互联网”428的全 球分组数据通信网络(World Wide Packet Data Communication Network)提供数据通信服务。局域网422和互联网428都使用承 载数字数据流的电信号、电磁信号或光学信号。如通过各种网络的 信号,网络链路420上的信号,通过通信接口418的信号是传输信 息的载波的示范形式,这些信号都传送数字数据给计算机系统400 或者传送来自计算机系统的数字数据。\n计算机系统400能通过网络、网络链路420和通信接口418发 送消息和接收数据(包括程序代码)。例如,在互联网的例子中, 服务器430可通过互联网428、ISP 426、局域网422、和通信接口 418,传送所请求的用于应用程序的代码。\n当代码被接收和/或储存在存储装置410上或者其它非易失性 存储器上用于随后执行时,处理器404可执行所接收到的代码。按 照这种方式,计算机系统400可以获得载波形式的应用程序代码。\n以上所述仅为本发明的优选实施例而已,并不用于限制本发 明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
法律信息
- 2007-11-28
- 2006-03-01
- 2006-01-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2002-06-05
|
2001-11-29
| | |
2
| |
1997-09-10
|
1996-06-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |