CN1717656A - 用分离的服务器支持专用存取控制的技术 - Google Patents
用分离的服务器支持专用存取控制的技术 Download PDFInfo
- Publication number
- CN1717656A CN1717656A CNA2003801044295A CN200380104429A CN1717656A CN 1717656 A CN1717656 A CN 1717656A CN A2003801044295 A CNA2003801044295 A CN A2003801044295A CN 200380104429 A CN200380104429 A CN 200380104429A CN 1717656 A CN1717656 A CN 1717656A
- Authority
- CN
- China
- Prior art keywords
- privilege
- data
- application program
- server
- user
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 20
- 230000006854 communication Effects 0.000 description 17
- 230000014509 gene expression Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 239000000463 material Substances 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 4
- 239000000725 suspension Substances 0.000 description 4
- 230000007812 deficiency Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000984642 Cura Species 0.000 description 1
- 240000004859 Gamochaeta purpurea Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000000899 pressurised-fluid extraction Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于支持在由应用程序执行的专用操作上的存取控制的技术包括在不同于应用程序的服务器接收第一数据。该第一数据描述用于执行第一组专用操作的第一组特权。也在服务器接收第二数据。该第二数据使应用程序的第一用户与在第一组特权中的特权相关联。响应于在服务器从应用程序接收的请求,根据第一数据和第二数据确定特定用户是否可使应用程序执行特定专用操作。请求指示特定用户和特定专用操作。响应被发送到应用程序。该响应指示特定用户是否可使应用程序执行特定专用操作。
Description
技术领域
本发明涉及控制用户对应用程序操作的存取,尤其涉及用不同于应用程序的服务器控制用户对应用程序的操作的存取。
背景技术
计算机进程交互的客户-服务器模式被广泛应用。根据客户-服务器模式,客户进程将包括请求的消息发送至服务器进程,并且服务器进程通过提供服务做出响应。服务器进程也可将具有响应的消息返回至客户进程。客户进程和服务器进程经常在不同的计算机设备(所谓的主机)上执行,并且使用一个或多个网络通信协议通过网络进行通信。
术语“服务器”通常指的是提供服务的进程,或在其上运行该进程的主计算机。相似地,术语“客户”通常指的是作出请求的进程,或在其上运行该进程的主计算机。除非在上下文中另有说明,在此中所用的术语“客户”和“服务器”指的是进程,而不是主计算机。
响应于来自数据库客户的请求,数据库服务器提供数据库服务。例如,数据库服务器将在请求中接收到的数据写入在由数据库服务器管理的特定数据库中的一个或多个数据容器;或者,从一个或多个满足请求中指定的条件的那些容器取回数据;或者,两者全有。在许多情况下,数据库客户是不同于数据库服务器的中间层应用程序,该应用程序对一个或多个应用程序用户执行诸如会计服务的其它服务。应用程序本身可被配置用于客户-服务器操作,由此应用程序用户操作作出应用程序请求至应用程序服务器的应用程序客户。
不是数据库服务器的所有用户都被授权存取在由数据库服务器管理的所有数据库对象中的所有数据。因此,数据库服务器通常执行控制数据库用户对数据库中的数据的存取的存取控制。已知有多种存取控制机制:例如,在Murthy中描述的统一存取控制机制提供对数据内容的存取控制,该数据内容类似将被组织在存储容器的层次中的数据库用户,或者类似将被组织在具有限定列的表格的相关数据库中的数据库用户,或者两者均有。
存取控制经常作为执行数据库操作的特权,其带有一组对于在数据库中的多个数据项中的特定数据项或组的与数据库的各用户相关的一个或多个特权。例如,限定基本特权用于执行基本数据库操作,诸如读取、插入、删除可驻留在诸如表格的数据库对象中的数据项的数据的操作,或创建、修改或删除数据库对象自身的操作。
执行基本数据库操作的特权与数据库的若干层(level)的特定层相关。数据库的层包括,例如,数据项层、若干数据项的数据库对象层、若干数据库对象的层次的节点层、以及数据库对象的若干派生节点的亲代节点层。当特权与特定层相关时,特权可在该层应用于所有的项。
在一些数据库管理系统中,可限定特权的层次,在层次中的各节点表示执行在一个或多个数据库层上的基本操作的特定组合的特权。为了支持该层次的特权,在一些数据库管理系统中的数据库服务器提供基本结构以描述特权,使用户和数据项与特权相关,并有效储存和取回在高速存储器缓冲中关于特权的信息以快速确定数据库用户是否可执行在请求的数据项或数据库对象上的请求的数据库操作。
根据执行数据库操作的特权支持对数据库的存取控制的基本结构在数据库操作的粒度下提供存取控制。然而,当需要根据在使用数据库的应用中限定的操作控制存取时,在粒度的数据库操作层提供存取控制的能力不是特别有用。这样的操作在此中被称为“专用(application-specific)”操作。
例如,在管理企业的定购单的应用程序中,专用操作包括:创建新的定购单,批准定购单,发行定购单以进行购买,使发票与特定的定购单相关,确认收到已发送的定购单,以及通过支付相关的发票清除定购单。如果将特权给予特定应用程序用户以执行这些专用操作中的一些,而不是其它的,随后必须在粒度的专用操作层提供存取控制。由于存取控制的粒度的该层不通过数据库服务器提供,使用专用操作的特权的每个应用程序的开发者必须设计并执行管理用于不同用户的不同特权的存取控制软件。
存在若干为每个应用程序开发存取控制软件方面的不足。一个不足在于由于开发资源被消耗以产生执行存取控制的软件,开发应用程序的成本增加。存取控制越复杂,开发成本越高。相反地,开发存取控制上的花费越少,执行的存取控制越简单。另一不足在于为新应用程序开发存取控制通常不如经过多年用于一些系统和服务器上的已经开发的存取控制有效。例如,一些数据库服务器随使用最小计算资源的存取控制而发展,其包括使用指示用户特权的数据的有效高速缓存。
此外,具有独立开发的存取控制机制的多个应用程序的管理员可能不得不对付用于表示特权的层次和表示具有那些特权的应用程序用户和数据项的关系的不同接口。如果可跨过多个应用程序得到相同存取控制基本结构,那些多个应用程序的管理员可更容易地进入与特权和相关用户和数据项相关的信息,具有较低浓度和较少错误。
根据上述描述,明显需要可应用到数据库应用程序的数据库服务器的有效存取控制机制。通常地,需要使在分离的服务器中执行的复杂且有效的存取控制机制可应用到任何应用程序中。
可以继续本节中所描述的方法,但不是已被构思和继续的必要的方法。因此,除非在此另有说明,在此部分中描述的方法不能仅因为在此背景技术部分中出现这些方法,就认为是本申请的权利要求中的现有技术。
附图说明
本发明在附图中以举例而不是限制的方式加以阐明,附图中相同的附图标记指相同的元件,其中:
图1是示出执行专用操作的特权的典型层次的框图;
图2是示出根据实施例的用于支持用分离的数据库服务器在专用操作上的存取控制的系统的框图;
图3是示出根据实施例的用于支持用分离的服务器在专用操作上的存取控制的方法的实施例的流程图;以及
图4是示出在其上可执行本发明实施例的计算机系统的框图。
具体实施方式
本发明描述了一种用于支持用分离的数据库服务器在专用操作上的存取控制的方法和装置。在下面的描述中,出于解释的目的,许多具体的细节被阐明以提供对本发明的彻底理解。然而,显而易见,本发明可以在没有这些具体细节的情况下实施。在其它实例中,已知的结构和装置以框图的形式示出,以避免对本发明造成不必要的混淆。
在数据库服务器和作为数据库客户的应用程序的下文中将描述特定实施例。在上下文中,应用程序使用数据库服务器不仅存储用于应用程序的数据,而且支持操作的存取控制,该操作不是数据库操作,而是对应用程序特定的操作。本发明的实施例不限于本文,但是可包括依靠任何分离的服务器以支持在专用操作上的存取控制的任何应用程序。尽管应用程序和服务器是单独的进程,在一些实施例中两者可在同一台计算机主机上执行。
根据一实施例,专用操作的存取控制通过将描述用于执行第一组专用操作的特权的第一层次的数据发送到服务器的应用程序来实现。该应用程序还将使应用程序的第一用户和在特权的第一层次中的特权相关的数据发送到服务器。为了确定特定用户是否被允许执行特定专用操作,该应用程序将请求发送到服务器。该请求指示特定用户和特定专用操作。响应于接收请求,根据先前从应用程序接收的数据,服务器确定特定用户是否可使应用程序执行特定专用操作。将响应发送到应用。该响应指示特定用户是否可使应用程序执行特定专用操作。
在这些技术的一些实施例中,由应用程序发送到服务器的数据使应用程序的第一用户与用于在服务器中储存的特定类型数据项的第一层次中的特权相关。在一些实施例中,应用程序可向服务器提供若干不同用户、或若干不同数据项、或两者的特权信息。
存取控制通常可表示为执行操作的特权层次。层次是众所周知的数学结构。通常地,层次由在多层的节点组成。处于每个层的节点各与在不同层的一个或多个节点相连接。在顶层以下层的每个节点是上一层的一个或多个亲代节点的子节点。在树形层次中,每个子节点只具有一个亲代节点,但是亲代节点可具有多个子节点。在树形层次中,没有与之相连接的亲代节点的节点是根节点,并且没有与之相连接的子节点的节点是叶节点。树形层次典型地具有单个根节点。树形层次可用于描述包括一个或多个子特权的亲代特权。
在特权的层次中,每个叶节点与执行一个其存取将被控制的专用操作的特权相对应。执行多于一个专用操作的特权与在对应于多于一个专用操作的叶节点的层次中的先辈节点相对应。
图1是示出执行用于管理企业的定购单(PO)的应用程序的专用操作的特权的典型层次100的框图。在典型层次100中,每个节点110对应于执行与定购单(PO)相关的一个或多个专用操作的特权。如果有,省略号111表示代表附加特权的附加节点。在其它实施例中,特权的层次在更多或更少层可具有更多或更少的节点。
在层次100中的每个叶节点与执行其存取将被控制的专用操作中的一个的每个特权相对应。在所描述的实施例中,表格1中列出用于单一专用操作的特权和对应叶节点。经应用程序的管理员的判断,可将任何这些特权给予任何应用程序的用户。
表1.特权的实例层次
叶节点 | 特权名称 | 允许的单一专用操作 |
110b | Generate_PO | 创建带有卖方名称和地址的PO和来自该卖方的项列表 |
110g | Approve_Services | 提供使用用于服务购买的PO的授权 |
110h | Approve_Equipment | 提供使用用于固定设备购买的PO的授权 |
110i | Approve_Supplies | 提供使用用于物资购买的PO的授权 |
110d | Purchase | 通过向卖方发送批准的定购单实现从卖方的定购 |
110j | Accept_Services | 表示在PO中递送的服务是可接受的 |
110k | Accept_Equipment | 表示在PO中递送的固定设备是可接受的 |
110l | Accept_Supplies | 表示在PO中递送的物资是可接受的 |
110f | Pay_under_PO | 向卖方发送在PO中接受的递送的付款 |
层次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的特权包括执行关于定购单的所有专用操作的特权。
结构概述
图2是示出根据实施例的用于支持用分离的数据库服务器在专用操作上的存取控制的系统200的框图。系统200包括应用程序220、应用程序客户210、以及数据库服务器230。响应于来自一个或多个应用程序客户210的一个或多个命令,应用程序220执行一个或多个专用操作。
数据库服务器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中的数据可储存在较多或较少的数据结构中。
功能概述
根据所述的实施例,对客户而言,在应用程序220执行其存取被控制的专用操作之前,应用程序220将请求发送到数据库服务器230以确定与客户相关的用户是否具有使应用程序220执行在特定数据项上的专用操作的特权。根据储存在数据结构242、244中的请求和信息,数据库服务器230将响应发送回应用程序220。该响应包括指示用户是否具有使应用220执行在特定数据项上的专用操作的特权的数据。
应用程序220的管理员提供在数据结构242、244中的信息。在所示的实施例中,应用程序管理员使用可扩展标记语言(Extensible Markup Language,XML)文档储存描述层次的数据。XML是由万维网协会(World Wide Web Consortium,W3C)颁布的标准定义的用于描述结构数据的众所周知且广泛使用的标记语言,并且允许数据元素的任意树形层次。随后应用程序管理员与由数据库服务器230提供的接口进行交互。该接口允许应用程序管理员表示描述应用于数据项的每个数据项或组的层次的XML文档,并允许表示在每个层次中应用于应用程序220的每个用户的一个或多个特权。
在一些实施例中,对于一个应用程序的若干特权层次的每一个与专用操作所操作的数据项的相应类型相关。例如,特权层次100与表示企业定购单的数据项相关,但是不与表示相同企业的人员记录的数据项相关。在人员记录操作的特权在不同于特权层次100的第二特权层次(没有显示)中表示。在该实施例中,数据结构242中的数据使每个特权层次与被那些特权允许的操作所操作的一个或多个类型数据项相关。
用于支持专用操作上的存取控制的方法
为了描述该方法,描述典型的实施例。在典型实施例中,应用程序管理员生成描述用于在定购单对象上的专用操作的特权层次的可扩展标记语言(XML)文档。在其它实施例中,其它结构数据格式可用于表示特权的层次。
在典型的实施例中,每个XML元素对应于代表在特权层次中的特权的节点。表格2示出描述在图1中所示的典型层次100的典型XML文档部分。
表2.描述特权的典型层次的XML文档部分
行号 | XML行 |
1234567891011121314151617 | ...<PO_ALL><Generate_PO/><Approve_PO><Approve_Services/><Approve_Equipment/><Approye_Supplies/></Approve_PO><Purchase/><Accept_Delivery><Accept_Services/><Accept_Equipment/><Accept_Supplies/></Accept_Delivery><Pav_under_PO/></PO_ALL>... |
为了描述方便,假设具有在表格2中列出的行的XML文档储存在应用程序220的主计算机上名为POprivileges.xml的文件中。每个XML元素具有一个名称。XML元素的开始由将XML元素的名称括在一起的符号“<”“>”表示。XML元素的结束由将XML元素的名称括在一起的符号“</”“>”表示。母元素的所有子元素都包括在表示母元素的开始和结束的符号之间。当元素没有子元素时,可选地,可以通过由符号“<”“/>”括在一起的元素名称表示。
在表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。
图3是示出根据实施例的用于支持用分离的服务器在专用操作上的存取控制的方法300的实施例的流程图。尽管在图3中示出步骤的特定次序,在其它实施例中,步骤可按不同次序执行或可在时间上重叠。例如步骤310和320可在时间上重叠。
在步骤310中,服务器接收表示用于执行在多种类型数据项上的专用操作的特权层次的数据。可使用任何用于接收特权层次的方法。例如,在步骤310中,应用程序管理员形成具有表格2所示的行的XML文档,将文档储存在文件POprivileges.xml中,并且利用数据库服务器存取控制接口表示应该由数据库服务器使用在文件POprivileges.xml中的特权的层次支持的专用存取控制。在一些实施例中,数据库服务器存取控制接口为诸如技术领域中众所周知的超文本标识语言(HyperText Markup Language,HTML)页的图形用户接口,其提示用户输入特定专用存取控制。在一些实施例中,数据库服务器存取控制接口为在技术领域中众所周知的应用编程接口(Application Programming Interface,API),其包括程序和参数的名称与类型,调用该程序和参数以执行数据库服务器存取控制功能。在其它实施例中,采用到服务器的其他接口。
在一些实施例中,为相同应用程序接收多于一个特权层次。例如,如果应用程序为企业系统,该应用程序可不但包括用于定购单系统的特权层次,而且包括诸如人力资源系统、设备管理系统、产品制造跟踪系统、和批发销售系统的其它系统的特权层次。应用到不同系统的层次通常指的是在数据库中由应用程序储存的不同类型数据项上的专用操作。例如,在图1中示出的特权层次指的是在表格1中列出的在数据库中定购单数据库对象上操作的操作,而人力资源的特权层次指的是在数据库中个人数据库对象上的操作。
在带有多于一个特权层次的一些实施例中,在步骤310中,每个特权层次与一个类型的数据项相关,并且该类型的数据项还被认为是表示特权层次的数据。例如,由表2中XML行指示的层次与由数据库服务器230为应用程序管理的数据库中的定购单数据库对象相关。在一些实施例中,关联在XML文档中实现;在一些实施例中,关联在到数据库服务器存取控制系统的接口处实现。在一些实施例中,相同应用程序的不同层次通过诸如层次名称的其它方法进行区分。
在步骤320中,服务器接收表示每个用户和多个数据项中的数据项或组的特权的数据。可使用接收该数据的任何方法。例如,在步骤320中,应用程序管理员形成第二XML文档,将用户身份(“userID”)与在特权层次100中的一个或多个特权相关,并且采用数据库服务器存取控制接口表示第二XML文档使用户与特权相关。该接口可为诸如HTML页、API、或用于向服务器提供数据的其它接口的图形用户接口。在一些实施例中,XML文档指定用于Murthy的统一存取控制系统的存取控制表(ACL),使用诸如以下表格3所示的XML行。在表3中,使客户命令应用程序做出造成将请求被控制的专用操作的事情的用户被称作“委托人”;一个委托人具有用户ID“SCOTT”并且另一个委托人具有用户ID“PETER”。在表格3中,每个ACL包括一个或多个存取控制部件(Access ControlElements,ACE)。每个ACE包括一个为委托人命名的委托人部件和一个特权部件。特权部件包括一列一个或多个在特权层次中通过它们名称识别的特权。在第1和19行中的省略号表示ACL之前和之后的其它XML行。在第17行中的省略号表示指定其它ACE的其它XML行。
表3.描述每个用户的特权的XML文档部分
行号 | XML行 |
12345678910111213141516171819 | ...<ACL><ACE><principal>SCOTT</principal><privileges><Generate_PO/><Accept_Supplies/></privileges></ACE><ACE><principal>PETER</principal><privileges><Approve_PO/><Pay_under_PO/></privileges></ACE>...</ACL>... |
如表3的典型ACL中所示,用户SCOTT可产生PO并接受物资的传递,而用户PETER可批准任何种类的PO并授权对卖方的付款。
在具有多层次的实施例中,在步骤320中指定每个层次中的用户特权。例如,如果使用ACL,将有一组在应用于定购单数据项的定购单层次中指定特权的ACL和另一组在应用于人力资源数据项的人力资源层次中指定特权的ACL。
在步骤340中,服务器从应用程序接收存取控制请求。该请求包括表示特定用户和特定专用操作的数据以及将在其上执行操作的数据项。在只有一个应用于所有数据项的层次的实施例中,该数据项可被忽略。在具有用于一个应用的多层次的实施例中,根据该类型的数据项从数据项中推断出将被应用的特权层次。一种类型的数据项表示一个或多个数据项或数据库对象。在一些实施例中,表示特定专用操作的数据是表示一个或多个专用操作的特定特权的数据。
为了说明的目的,假设用户SCOTT通过客户210a操作应用程序220,并且用户PETER通过客户210b操作应用程序220。还假设用户SCOTT尝试批准特定定购单,在下文中指定为“PO12345”,用户SCOTT刚好已经产生该定购单用于办公物资。这导致应用程序220产生包括表示用户SCOTT在定购单数据项PO12345上尝试执行需要Approve_Services特权的专用操作的数据的存取控制请求。在步骤340中数据库服务器接收请求。
在步骤350中,服务器根据与特定数据项的特定用户相关的特权确定应用程序是否可执行特定用户的特定操作。例如,数据库服务器230根据与用于在与定购单数据项相关的层次中的定购单数据项的SCOTT相关的特权确定应用程序220是否可执行需要SCOTT的Approve_Services特权的操作。
在步骤350中,服务器确定适当的层次。例如,数据库服务器230根据由数据库服务器230保存的数据库元数据确定PO12345是定购单型数据库对象。随后,数据库服务器230确定在步骤310中接收的特权层次(在表格2中部分列出的XML文档中)是适当的层次。
在步骤350中,服务器确定用户是否具有在请求中表示的特权。例如,数据库服务器230确定在表格3中列出的ACL中的用户SCOTT出现在用于定购单数据项的第3-9行处ACE中,但是特权Approve_Services没有列在第5-8行所列的特权之中。因此,用户SCOTT不具有执行该专用操作的特权。
在步骤390中,服务器将响应发送回应用程序。该响应包括表示应用程序是否可执行特定用户的特定操作的数据。例如,数据库服务器230将表示应用程序220不应该执行与客户210a相关的用户SCOTT的批准服务操作的响应发送回应用程序220。根据该响应,应用程序不执行该操作。在一些实施例中,应用程序将消息发送给用户的客户,根据该响应,用户不允许执行专用操作。例如,根据该响应,应用程序220将消息发送给客户210a,不允许用户SCOTT批准用于服务的定购单。
用位图表现用户特权
在步骤350中,如上所述,服务器确定用户是否具有在请求中表示的特权。在高速存储器的高速缓存中保存操作应用程序的有效客户的用户的特权是有利的。储存在高速缓存中的用户特权越多,服务器可响应支持专用操作的存取控制的请求越快。用户特权可表示的越紧密,可存储在高速缓存中的用户越多。根据实施例,服务器在高速缓存中使用位图表示与每个用户相关的特权。例如,数据库服务器230在高速缓存232中使用位图储存用户特权。
在该实施例中,服务器将在层次中的每个叶节点与比特位置相关。例如,在表格1中列出的层次100的九个叶节点与比特位置1至9相关。当服务器接收表示授权给特定用户的特权的数据(包括从永久存储器中读取该数据)时,服务器将对应于授权的特权的比特设置成“ON”值,例如“1”,并且将对应于未授权的特权的比特设置成“OFF”值,例如“0”。当对应亲代节点的特权被授权时,与为该亲代节点的分支的所有叶节点对应的比特被设置成ON值。例如,授权给在表格3中列出的XML行中用户SCOTT和PETER的特权由在表格4中列出的位图表示,其中比特位置从右(最不重要的比特)至左(最重要)计算。
表4.表示在图1的层次中授权的特权的典型位图
用户ID | 位图 |
SCOTT | 010000001 |
PETER | 100001110 |
SCOTT被授予产生PO的特权,第一叶节点110b,所以ON值“1”被设置在第一(最右)比特中。SCOTT还被授予接受传递的物资的特权,第八叶节点1101,所以ON值“1”被设置在从右开始的第八个比特中。PETER被授予批准PO的特权,其为叶节点110g、110h、110i的亲代节点以分别批准服务、设备、以及物资。因此,将对应三个叶节点110g、110h、110i的比特设置成ON值“1”。这些比特处于从右开始的位图的第二到第四位置。PETER还被授予支付传递的特权,第九叶节点110f,所以ON值“1”被设置在从右开始的第九比特中,即最左比特中。
在一些具有多层次的实施例中,所有层次的叶节点都集合在单一位图中。在其它实施例中,不同层次的叶节点被集合在不同位图中。在一些实施例中,可根据层次的名称和特权的名称用散列函数确定比特位置。
在一些使用位图的实施例中,在步骤350中,数据库服务器230确定用于特定数据项的特定用户的位图是否已经在高速缓存232中。如果是,可以消除从储存在永久存储器240上的数据取回位图的操作。如果不是,从永久存储器240中取回用户的位图并且添加到高速缓存232中。如果在高速缓存232中没有足够的空间放置取回的位图,那么使用技术领域中已知的任一方法释放高速缓存232中的空间。例如,分配给最近使用的位图的存储器可用于特定用户的位图。
随后数据库服务器230确定与专用操作的特权或在步骤340中接收的存取控制请求中表示的特权相关的比特位置。例如,使用在表格2中表示的层次,数据库服务器确定与Approve_Services特权相关的批准服务操作与第二叶节点相关并因此与位图的第二比特相关。
在步骤350中,随后数据库服务器230确定在那个比特位置中的比特是否被设置成ON值。例如,数据库服务器确定在表格4中列出的SCOTT的位图中第二比特未被设置成ON值。因此,数据库服务器确定SCOTT不具有批准服务的特权。
如果数据库服务器230从PETER接收请求以批准PO12345,在步骤350中,数据库服务器230确定在表格4中列出的PETER的位图中第二比特被设置成ON值。因此,数据库服务器确定PETER具有批准服务的特权。
如在此所述,用于确定用户特权的高速缓存232和位图的使用是很有效的。应用程序开发者可通过诸如数据库或内容管理服务器的分离的服务器利用该有效的特权确定,不需要大量的软件开发。应用程序管理员经常使用已经为分离的服务器建造的接口,简单地一次提供特权的层次和分离的服务器的用户特权。开发新应用,或更改现有应用以简单地将存取控制请求发送给分离的服务器。不需要开发该应用以有效确定特权是否可用于专用操作。例如,不需要开发应用以管理高速缓存232或形成用户特权的位图。
硬件概述
图4是描述可应用本发明的实施例的计算机系统400的框图。计算机系统400包括用于传递信息的总线402或其它通信装置、用于处理信息的与总线402连接的处理器404。计算机系统400还包括主存储器406,例如随机存取存储器(RAM)或者其它动态存储装置,与总线402连接,用于储存信息及处理器404要执行的指令。主存储器406还可用于储存处理器404执行指令过程中的临时变量或其他中间信息。计算机系统400还包括只读存储器(ROM)408或者其他静态存储装置,与总线402连接,用于储存静态信息和处理器404的要执行的指令。存储装置410,如磁盘或光盘,和总线402连接以储存信息和指令。
计算机系统400可以经由总线402连接到显示器412,如阴极射线管(CRT),用于向计算机用户显示信息。包括字母数字键和其他键的输入装置414与总线402相连,用于传递通信信息和命令选择到处理器404。另一种用户输入装置是光标控制416,如鼠标、跟踪球、或光标方向键,用于传递方向信息和命令选择到处理器404及用于控制显示器412上的光标移动。这个输入装置通常在两个轴上(第一个轴(例如X轴)和第二个轴(例如Y轴))具有两个自由度,使装置能指定平面上的位置。
本发明涉及用于实现在此描述的技术的计算机系统400的使用。根据本发明的实施例,响应于处理器404执行在主存储器406中包括的一个或多个指令的一个或多个序列,这些技术通过计算机系统400执行。这样的指令可从诸如存储设备410的另一计算机可读介质读入主存储器406。通过执行包含在主存储器406中的指令序列,使处理器404执行此处所述的处理步骤。在可选实施例中,硬连线电路(hard-wired circuitry)可取代软件指令或者与软件指令结合来实施该发明。因此,本发明中的实施例将不限于硬件电路和软件的任何特定组合。
这里使用的术语“计算机可读介质”是指参与提供指令给用于执行的处理器404的任何介质。这种介质可以采取很多形式,包括但不限于非易失性介质、易失性介质和传递介质。非易失性介质举例来说包括光盘或磁盘,如存储装置410。易失性介质包括动态存储器,如主存储器406。传输介质包括同轴电缆、铜线、和光纤,包括由总线402组成的导线。传输介质还可采取声波或光波的形式,例如那些在无线电波和红外线数据通信过程中产生的声波和光波。
通常的计算机可读介质举例来说包括软盘、柔性盘、硬盘、磁带,或者任何其它磁性介质、CD-ROM、任何其它光介质、打孔纸、纸带、或者任何带孔的物理介质、RAM、PROM、EPROM、FLASH-EPROM、或者其他任何存储芯片或者磁带,或者以下提到的载波、或者计算机可读的任何其他介质。
各种形式的计算机可读介质可参与传送一个或者多个指令的一个或多个序列到用于执行的处理器404。例如,指令开始可承载远程计算机的磁盘中。远程计算机能将该指令加载到其动态存储器中,然后使用调制解调器基于电话线发送信息。计算机系统400本地的调制解调器可接收电话线上的数据,然后使用红外转换器将数据转换成红外信号。红外探测器可以接收红外信号携带的数据,合适的电路可以把信息放到总线402上。总线402把数据传递到主存储器406中,处理器404从主存储器406取回并执行这些指令。在处理器404执行这些指令之前或之后,主存储器406接收的指令可随意地储存于存储装置410中。
计算机系统400还包括连接到总线402的通信接口418。通信接口418提供双向数据通信,连接到与局域网422相连的网络链路420。例如,通信接口418可以是综合业务数字网(Integrated ServicesDigital Network,ISDN)卡或者调制解调器,用于提供到相应类型电话线的数据通信连接。又如,通信接口418可以是局域网(LocalArea Network,LAN)卡,用于提供至兼容局域网(LAN)的数据通信连接。也可以使用无线链路。无论采用何种连接,通信接口418均发送和接受承载各种信息的数字数据流的电信号、电磁信号和光学信号。
网络链路420通常可通过一个或者多个网络提供数据通信给其它数据装置。例如,网络链路420可通过局域网422与主机424连接,或者与互联网服务提供商(Internet Service Provider,ISP)426操作的数据设备连接。ISP 426又通过目前通称为“互联网”428的全球分组数据通信网络(World Wide Packet Data CommunicationNetwork)提供数据通信服务。局域网422和互联网428都使用承载数字数据流的电信号、电磁信号或光学信号。如通过各种网络的信号,网络链路420上的信号,通过通信接口418的信号是传输信息的载波的示范形式,这些信号都传送数字数据给计算机系统400或者传送来自计算机系统的数字数据。
计算机系统400能通过网络、网络链路420和通信接口418发送消息和接收数据(包括程序代码)。例如,在互联网的例子中,服务器430可通过互联网428、ISP 426、局域网422、和通信接口418,传送所请求的用于应用程序的代码。
当代码被接收和/或储存在存储装置410上或者其它非易失性存储器上用于随后执行时,处理器404可执行所接收到的代码。按照这种方式,计算机系统400可以获得载波形式的应用程序代码。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种用于控制对由应用程序执行的专用操作的存取的方法,包括以下步骤:
在不同于所述应用程序的服务器处接收特权信息;
使所述服务器根据所述特权信息确定在一组特定条件下是否允许特定专用操作;以及
使所述服务器将在该组特定条件下是否允许所述特定专用操作的指示传送到所述应用程序。
2.根据权利要求1所述的方法,其中,所述接收特权信息的步骤包括在所述服务器接收描述用于执行第一多个专用操作的第一组特权的第一数据。
3.根据权利要求2所述的方法,其中,所述接收特权信息的步骤还包括在所述服务器接收使所述应用程序的用户与在所述第一组特权中的一个或多个特权相关联的第二数据。
4.根据权利要求1所述的方法,还包括以下步骤:
响应于在所述服务器处从所述应用程序接收用于指示特定用户和特定专用操作的请求,根据所述特权信息确定所述特定用户是否可使所述应用程序执行所述特定专用操作;以及
其中,使所述服务器将指示传送给所述应用程序的步骤包括将指示所述特定用户是否可使所述应用程序执行所述特定专用操作的响应发送到所述应用程序的步骤。
5.根据权利要求4所述的方法,其中:
所述接收特权信息的步骤还包括接收使第一组特权与在其上执行所述多个专用操作的第一类数据项相关联的第一数据;以及
所述接收所述请求的步骤还包括接收还指示特定数据项的请求;以及
所述确定所述特定用户是否可使所述应用程序执行所述特定专用操作的步骤还包括确定所述特定数据项是否是所述第一类数据项中的成员。
6.根据权利要求5所述的方法,其中:
所述方法还包括在所述服务器处接收第二数据,所述第二数据用于描述用于在不同于所述第一类数据项的第二类数据项上执行第二多个专用操作的第二组特权;以及
所述确定所述特定用户是否可使所述应用程序执行所述特定专用操作的步骤部分是根据所述特定类型的特定数据项执行的。
7.根据权利要求1所述的方法,所述接收特权信息的步骤包括接收可扩展标记语言(XML)形式的文档。
8.根据权利要求4所述的方法,所述确定所述特定用户是否可使所述应用程序执行所述特定专用操作的步骤还包括管理在用于储存信息的高速存储器中的高速缓存的步骤,所述信息使一个或多个用户中的每个用户与在一组或多组特权的每组中的一个或多个特权相关联。
9.根据权利要求2所述的方法,所述管理所述高速缓存的步骤还包括在所述高速缓存中储存指示与每个用户相关联的一类数据项的数据的步骤。
10.根据权利要求2所述的方法,其中,所述第一组特权形成两层或多层特权的第一层次。
11.根据权利要求8所述的方法,所述管理所述高速缓存的步骤还包括在所述高速缓存中储存每个用户的位图,其中:
每组特权形成一层或多层特权的一个层次;
在所述位图中的每个不同位置对应于在所述一组或多组特权的每个层次中的一个不同叶节点;以及
叶节点是不具有任何子节点的层次的节点。
12.一种用于控制对由应用程序执行的专用操作的存取的方法,包括以下步骤:
将特权信息传送到不同于所述应用程序的服务器;
将请求从所述应用程序发送到所述服务器,用于服务器根据所述特权信息确定在一组特定条件下是否允许特定专用操作;
从所述服务器接收在该组特定条件下是否允许所述特定专用操作的指示;以及
如果所述服务器指示在该组特定条件下允许所述特定专用操作,则所述应用程序只允许所述特定专用操作。
13.根据权利要求12所述的方法,其中:
将特权信息传送到服务器的步骤包括:
将第一数据发送到不同于所述应用程序的服务器,所述第一数据用于描述用于执行第一多个专用操作的第一组特权;以及
将第二数据发送到所述服务器,所述第二数据用于使所述应用程序的第一用户与在所述第一组特权中的特权相关联。
14.根据权利要求12所述的方法,还包括以下步骤:
在所述应用程序处接收来自特定用户的命令,所述命令包括使所述应用程序执行特定专用操作;
将指示所述特定用户和所述特定专用操作的请求发送到所述服务器;
其中,从所述服务器接收在所述组特定条件下是否允许特定专用操作的指示的步骤包括:根据所述第一数据和所述第二数据从所述服务器接收指示所述特定用户是否可使所述应用程序执行所述特定专用操作的响应;以及
只有所述响应指示所述特定用户可使所述应用程序执行所述特定专用操作时,执行所述特定专用操作。
15.根据权利要求13所述的方法,其中:
所述发送所述第一数据的步骤还包括发送还使所述第一组特权与在其上执行所述多个专用操作的第一类数据项相关联的第一数据;以及
所述发送所述请求的步骤还包括发送还指示特定数据项的所述请求;以及
根据所述第一数据和所述第二数据接收所述响应的步骤还包括还根据所述特定数据项是否为所述第一类数据项中的成员接收所述响应。
16.根据权利要求15所述的方法,其中:
所述方法还包括将第三数据发送到所述服务器,所述第三数据用于描述用于在不同的第二类数据项上执行第二多个专用操作的不同的第二组特权;以及
所述发送所述第二数据的步骤还包括发送还使所述应用程序的第二用户与在所述第二层次的特权中的特权相关联的第二数据;以及
根据所述第一数据和所述第二数据接收所述响应的步骤还包括接收还根据特定类型的所述特定数据项是否与用于包括所述特定专用操作的特定多个专用操作的一组特定特权相关联的响应。
17.根据权利要求12所述的方法,所述传送特权信息的步骤还包括发送可扩展标记语言(XML)形式的文档。
18.根据权利要求13所述的方法,其中,应用程序不管理在用于储存信息的高速存储器中的高速缓存,所述信息使一个或多个用户中的每个用户与在包括所述第一组特权的一组或多组特权的每组中的一个或多个特权相关联。
19.根据权利要求13所述的方法,其中,所述第一组特权形成两层或多层特权的第一层次。
20.承载一个或多个指令序列的计算机可读介质,当由一个或多个处理器执行所述指令序列时,所述指令序列使所述一个或多个处理器执行在权利要求1至19中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42454302P | 2002-11-06 | 2002-11-06 | |
US60/424,543 | 2002-11-06 | ||
US10/364,610 | 2003-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1717656A true CN1717656A (zh) | 2006-01-04 |
CN100351791C CN100351791C (zh) | 2007-11-28 |
Family
ID=35707232
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801044295A Expired - Lifetime CN100351791C (zh) | 2002-11-06 | 2003-11-06 | 控制对由应用程序限定的专用操作的执行的方法 |
CNB2003801071860A Expired - Lifetime CN100429654C (zh) | 2002-11-06 | 2003-11-06 | 用于管理来自单个接口的多层次数据的技术 |
CNB2003801027567A Expired - Lifetime CN100432993C (zh) | 2002-11-06 | 2003-11-06 | 成比例地存取任意大文档中的数据 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801071860A Expired - Lifetime CN100429654C (zh) | 2002-11-06 | 2003-11-06 | 用于管理来自单个接口的多层次数据的技术 |
CNB2003801027567A Expired - Lifetime CN100432993C (zh) | 2002-11-06 | 2003-11-06 | 成比例地存取任意大文档中的数据 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN100351791C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186636A (zh) * | 2011-12-31 | 2013-07-03 | 北大方正集团有限公司 | 一种移动设备中可阅读文件的加载方法及系统 |
CN103207813B (zh) * | 2012-01-11 | 2018-08-14 | 华为技术有限公司 | 管理资源的方法和装置 |
CN103208136A (zh) * | 2012-07-06 | 2013-07-17 | 北京中盈高科信息技术有限公司 | 一种三维图像数据处理方法及一种电子设备 |
WO2017077609A1 (ja) * | 2015-11-04 | 2017-05-11 | 富士通株式会社 | 構造解析方法、及び構造解析プログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696898A (en) * | 1995-06-06 | 1997-12-09 | Lucent Technologies Inc. | System and method for database access control |
GB2319705B (en) * | 1996-11-21 | 2001-01-24 | Motorola Ltd | Arrangement for encryption/decryption of data and data carrier incorporating same |
US6192476B1 (en) * | 1997-12-11 | 2001-02-20 | Sun Microsystems, Inc. | Controlling access to a resource |
US6449652B1 (en) * | 1999-01-04 | 2002-09-10 | Emc Corporation | Method and apparatus for providing secure access to a computer system resource |
US6721727B2 (en) * | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US20020056025A1 (en) * | 2000-11-07 | 2002-05-09 | Qiu Chaoxin C. | Systems and methods for management of memory |
US6542911B2 (en) * | 2001-03-01 | 2003-04-01 | Sun Microsystems, Inc. | Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache |
CN1313950C (zh) * | 2001-11-29 | 2007-05-02 | 上海复旦光华信息科技股份有限公司 | 域用户集中授权管理系统及其方法 |
-
2003
- 2003-11-06 CN CNB2003801044295A patent/CN100351791C/zh not_active Expired - Lifetime
- 2003-11-06 CN CNB2003801071860A patent/CN100429654C/zh not_active Expired - Lifetime
- 2003-11-06 CN CNB2003801027567A patent/CN100432993C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN100432993C (zh) | 2008-11-12 |
CN100429654C (zh) | 2008-10-29 |
CN1711534A (zh) | 2005-12-21 |
CN1729467A (zh) | 2006-02-01 |
CN100351791C (zh) | 2007-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4787617B2 (ja) | アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法 | |
CN101663671B (zh) | 对web服务资源的访问的授权 | |
CN100517317C (zh) | 用于保持可由客户机通过网络访问的文件集名称空间的方法、系统 | |
RU2586866C2 (ru) | Дифференцирование набора признаков участником арендуемой среды и пользователем | |
US11151264B2 (en) | Method and system for controlling access to a multi-tenant database system using a virtual portal | |
US7836019B2 (en) | System and method for tracking documents in an on-demand service | |
CN1842785A (zh) | 用于基于分层角色的权限的系统和方法 | |
US8868499B2 (en) | Method and system for pushing data to subscribers in an on-demand service | |
US8924470B2 (en) | Methods and systems for providing web applications | |
CN1770169A (zh) | 向用户/组授予访问控制列表所有权的访问控制系统和方法 | |
CN101772764B (zh) | 多线程业务编程库 | |
US20100319067A1 (en) | Method and System for Managing Object Level Security Using an Object Definition Hierarchy | |
CN1763761A (zh) | 基于角色的访问控制系统、方法和计算机程序产品 | |
US7366739B2 (en) | Data storage system | |
US20130198184A1 (en) | System, method and computer program product for portal user data access in a multi-tenant on-demand database system | |
TW200412515A (en) | Row-level security in a relational database management system | |
CN1659547A (zh) | 具有可插入体系结构的键值仓库 | |
JP2007004785A (ja) | 公衆データおよびプライベートデータを統合するシステムおよび方法 | |
CN1552021A (zh) | 用于用户概况表管理的接入控制协议 | |
US7010518B1 (en) | System and method for user defined data object hierarchy | |
CN1794232A (zh) | Crm数据库的安全视图 | |
US20080104250A1 (en) | Identity migration system apparatus and method | |
US20060288009A1 (en) | Method and apparatus for restricting access to an electronic product release within an electronic software delivery system | |
US20080127351A1 (en) | Method and apparatus for providing and processing contents using D.R.M | |
CN100361037C (zh) | 用于在数据处理系统中认证访问请求的方法与装置 |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20071128 |
|
CX01 | Expiry of patent term |