专利名称:Xml数据库系统的xml文档访问控制方法及系统的制作方法
技术领域:
本发明涉及-XML数据库领域,尤其涉及一种XML文档访问控制方法及系统。
背景技术:
XML数据库管理系统(XMLDBMS)是一种以存储和检索符合W3C标准的XML文档数据为目标的数据库管理系统。由于它存储的对象是XML文档库,因此XMLDBMS本质上就是一种XML文档库。
为了保证XML数据库管理系统的数据安全性,确保特定的XML文档数据只可以被拥有权限的用户访问,需要对数据读写请求进行访问控制。访问控制是所有类型的数据库管理系统(DBMS)都需要实现的功能,不过关系数据库管理系统(RDBMS)中访问控制对象一般是关系表,而XMLDBMS的访问控制的对象是XML文档。如果按照关系数据库管理系统的访问控制,则XMLDBMS的访问控制也需要以XML文档为单元建立每个XML文档的访问控制权限。当访问某一 XML文档时,先通过预先存储的访问控制权限来获得对应XML文档的访问控制权限,如果有对应的权限则进行该操作,否则拒绝本次操作。
然而,XMLDBMS中存储和管理的XML文档的数目非常巨大,通常比关系表的数目大若干个数量级。因而如果在XMLDBMS中使用传统的RDBMS中的方式实现访问控制,那么权限配置表将非常巨大,导致不仅数据库管理员(DBA)的权限配置工作量非常巨大,难以完成, 而且访问控制的计算量和权限查询开销也将非常巨大,可能大大降低XMLDBMS的查询处理性能。因此,这一直是困扰研发人员在XMLDBMS上面关于访问控制设计和实现方面的难点。发明内容
本发明的第一目的在于提供一种XML数据库系统的XML文档访问控制方法,以解决现有技术中采用传统方式进行XML文档权限控制,导致DBA权限配置工作量且访问控制计算量和权限查询开销也巨大,占用大量处理资源,从而降低系统的整体处理性能的技术问题。
本发明的第二目的在于提供一种XML数据库系统的XML文档访问控制系统,以解决现有技术中采用传统方式进行XML文档权限控制,导致DBA权限配置工作量且访问控制计算量和权限查询开销也巨大,占用大量处理资源,从而降低系统的整体处理性能的技术问题。
一种XML数据库系统的XML文档访问控制方法,包括以下步骤
构造带有权限配置信息的逻辑数据视图DAG,所述逻辑数据视图DAG向用户提供带有权限配置信息的XML文档多层存储的逻辑视图,同一个XML文档可由多条路径到达,不同权限用户配置不同路径,不同路径表明不同的权限;
进行访问控制计算时,对所述逻辑数据视图DAG的节点逐级计算访问权限,对当前路径节点具有访问权限,才被授权进入访问路径的下一级节点,直至访问到该XML文档, 若在一个节点的访问被拒,则本次访问被拒绝。
所述构造带有权限配置信息的逻辑数据视图DAG进一步包括建立不同权限用户的配置路径,所述路径节点为文档标识或文档集合标识;建立用户权限表,所述用户权限表表明每一路径的权限配置。
本方法还包括每个文档集合或文档设置一个用户无关的默认权限;进行访问控制计算时,如果所述默认权限允许访问,那么访问就被允许,否则才查找所述用户权限表以便确认当前用户是否具有权限进行本次访问。
所述建立不同权限用户的配置路径进一步包括建立至少包括允许只读访问 readonly、允许读写访问readwrite、任意访问freeaccess这三个文档集合,在所述文档集合下建立允许该权限的每个用户的文档集合,在对应的文档集合下建立允许该权限该用户的XML文档信息。
当用户名P通过访问路径PO要进行某一权限访问方式的访问时,通过所述用户权限表逐级检查访问权限。
具体地说
Al :判断Po路径是否为非空,如是,则从Po中截取根节点N,查所述根节点N的默认权限,进行A2,否则访问被授权;
A2 :判断所述默认权限是否允许,如是则进行步骤A4,否则进行A3 ;
A3 :查询所述根节点N的权限配置R,如R允许访问,则进行A4,否则访问被拒绝;
A4 :将Po/N做为Po,重新进行步骤Al。
—种XML数据库系统的XML文档访问控制系统,包括
带有权限配置信息的逻辑数据视图DAG :所述逻辑数据视图DAG向用户提供带有权限配置信息的XML文档多层存储的逻辑视图,同一个XML文档可由多条路径到达,不同权限用户配置不同路径,不同路径表明不同的权限;
访问控制单元用于对逻辑数据视图DAG的节点逐级计算访问权限,对当前路径节点具有访问权限,才被授权进入访问路径的下一级节点,直至访问到该XML文档,若在一个节点的访问被拒,则本次访问被拒绝。
与现有技术相比,本发明具有以下优点
首先,对这个DAG的任何XML文档数据的访问都是一次路径遍历,由根节点沿着指定路径遍历到目的地节点。通过配置DAG的文档集合节点的组合与包含方式,来构造一个带有权限配置信息的DAG,就可以对XML文档访问进行权限控制。由于同一个XML文档节点可以由多条路径到达,不同的路径可以附带不同的权限信息,因此达到针对不同用户配置不同权限的目的。针对一批XML文档为多个用户配置不同的权限时,只需要控制每个用户可以到达这些文档节点的路径,让他们经由不同的路径到达,即可达到访问权限可控的目的。数据库管理员可以按照不同用户对每个XML文档的访问权限的不同,使用文档集合灵活地组织XML文档。
本发明使得XMLDBMS的访问控制非常灵活和可配置,DBA可以根据应用逻辑和系统安全的需求灵活地配置访问控制策略。同时基于DAG路径遍历的访问控制计算策略以及默认权限的使用大大降低了访问控制的权限管理维护工作量和访问权限计算开销,降低了 DBA的工作量并且提升了查询处理性能。
接着,每个文档集合或者文档都有一个用户无关的默认权限,如果这个默认权限允许访问,那么访问就被允许,否则才查找权限表以便确认当前用户具有权限进行本次访问。这种授权计算方式大大减小了权限表的数据量,加快了访问控制的权限计算速度,降低了权限计算开销。
图I为带有权限配置信息的逻辑数据视图2为访问控制计算流程示例图3为XML数据库系统的XML文档访问控制系统的原理示意图。
具体实施方式
以下结合附图,具体说明本发明。
一种XML数据库系统的XML文档访问控制方法,包括以下步骤
构造带有权限配置信息的逻辑数据视图DAG,所述逻辑数据视图DAG向用户提供带有权限配置信息的XML文档多层存储的逻辑视图,同一个XML文档可由多条路径到达,不同权限用户配置不同路径,不同路径表明不同的权限;
进行访问控制计算时,对逻辑数据视图DAG的节点逐级计算访问权限,对当前路径节点具有访问权限,才被授权进入访问路径的下一级节点,直至访问到该XML文档,若在一个节点的访问被拒,则本次访问被拒绝。
实施例一
为了清晰描述,设计了一个简单的例子。假设XMLDBMS系统中有用户A,B,C和文档 docl. xml, doc2. xml, doc3. xml 和 doc4. xml。它们的访问权限表如表 I。
表I
用户名Docl. xmlDoc2. xmlDoc3. xmlDoc4. xmlARRffRffRffBRffRffRRffC———Rff默认权限RffRffRRff
其中,doc4. xml允许任意用户的任意访问方式,即默认访问权限是可读可写;另外三个文档针对不同用户具有不同的访问权限,并且docl. xml和doc2. xml的默认权限是可读可写,doc3. xml的默认权限是只读。
(I)构建带有权限配置信息的逻辑数据视图DAG
Al :建立不同权限用户的配置路径,路径节点为文档标识或文档集合标识;
建立不同权限用户的配置路径进一步包括建立至少包括允许只读访问 readonly、允许读写访问readwrite、任意访问freeaccess这三个文档集合,在这个文档集合下建立允许该权限的每个用户的文档集合,在对应的文档集合下建立允许该权限该用户的XML文档信息。
请参阅图1,该图的每个椭圆中的对象名称是文档集合或者文档的名称,紧跟着的括号内记录该对象的默认访问权限;每条边上面记录了权限表中对该路径的权限配置,例如“/-R(A,B) — readonly”表示权限表中记录了用户A,B可以只读访问路径/readonly。
S卩,数据库管理员(DBA)为了在本XMLDBMS系统中配置访问权限,可以按照如下步骤组织XML文档创建文档集合/readonly,以及/readonly/A和/readonly/B,其中/ readonly允许A, B只读访问,/readonly/A允许A只读访问,/readonly/B允许B只读访问。在/readonly/A中包含docl. xml,在/readonly/B中包含doc3. xml。再创建文档集合 /readwrite,以及/readwrite/A 和/readwrite/B,其中 /readwrite 允许 A,Bi卖写访问,/ readwrite/A允许A读写访问,/readwrite/B允许B读写访问。然后在/readwrite/A中包含 doc2. xml 和 doc3. xml,在 /readwrite/B 中包含 docl. xml 和 doc2. xml。上述创建的文档集合的默认权限都是禁止任何访问方式。
最后,创建文档集合/freeaccess并且设置其默认访问方式为可读可写,即任意访问方式,然后在其中包含doc4. xml并且其默认访问方式也是任意访问方式。
A2 :建立用户权限表,所述用户权限表表明每一路径的权限配置。
用户权限表中的内容如表2 :
表权利要求
1.一种XML数据库系统的XML文档访问控制方法,其特征在于,包括以下步骤构造带有权限配置信息的逻辑数据视图DAG,所述逻辑数据视图DAG向用户提供带有权限配置信息的XML文档多层存储的逻辑视图,同一个XML文档可由多条路径到达,不同权限用户配置不同路径,不同路径表明不同的权限;进行访问控制计算时,对所述逻辑数据视图DAG的节点逐级计算访问权限,对当前路径节点具有访问权限,才被授权进入访问路径的下一级节点,直至访问到该XML文档,若在一个节点的访问被拒,则本次访问被拒绝。
2.如权利要求I所述的方法,其特征在于,所述构造带有权限配置信息的逻辑数据视图DAG进一步包括建立不同权限用户的配置路径,所述路径节点为文档标识或文档集合标识;建立用户权限表,所述用户权限表表明每一路径的权限配置。
3.如权利要求2所述的方法,其特征在于,还包括每个文档集合或文档设置一个用户无关的默认权限;进行访问控制计算时,如果所述默认权限允许访问,那么访问就被允许,否则才查找所述用户权限表以便确认当前用户是否具有权限进行本次访问。
4.如权利要求2所述的方法,其特征在于,所述建立不同权限用户的配置路径进一步包括建立至少包括允许只读访问readonly、允许读写访问readwrite、任意访问 freeaccess这三个文档集合,在所述文档集合下建立允许该权限的每个用户的文档集合, 在对应的文档集合下建立允许该权限该用户的XML文档信息。
5.如权利要求2所述的方法,其特征在于,当用户名P通过访问路径PO要进行某一权限访问方式的访问时,通过所述用户权限表逐级检查访问权限。
6.如权利要求5所述的方法,其特征在于,Al:判断Po路径是否为非空,如是,则从Po中截取根节点N,查所述根节点N的默认权限,进行A2,否则访问被授权;A2:判断所述默认权限是否允许,如是则进行步骤A4,否则进行A3;A3:查询所述根节点N的权限配置R,如R允许访问,则进行A4,否则访问被拒绝;A4:将Po/N做为Po,重新进行步骤Al。
7.—种XML数据库系统的XML文档访问控制系统,其特征在于,包括带有权限配置信息的逻辑数据视图DAG :所述逻辑数据视图DAG向用户提供带有权限配置信息的XML文档多层存储的逻辑视图,同一个XML文档可由多条路径到达,不同权限用户配置不同路径,不同路径表明不同的权限;访问控制单元用于对逻辑数据视图DAG的节点逐级计算访问权限,对当前路径节点具有访问权限,才被授权进入访问路径的下一级节点,直至访问到该XML文档,若在一个节点的访问被拒,则本次访问被拒绝。
全文摘要
一种XML数据库系统的XML文档访问控制方法和系统,该方法包括构造带有权限配置信息的逻辑数据视图DAG,所述逻辑数据视图DAG向用户提供带有权限配置信息的XML文档多层存储的逻辑视图,同一个XML文档可由多条路径到达,不同权限用户配置不同路径,不同路径表明不同的权限;进行访问控制计算时,对逻辑数据视图DAG的节点逐级计算访问权限,对当前路径节点具有访问权限,才被授权进入访问路径的下一级节点,直至访问到该XML文档,若在一个节点的访问被拒,则本次访问被拒绝。本发明使得XMLDBMS的访问控制非常灵活和可配置。
文档编号G06F17/30GK102542069SQ20121001316
公开日2012年7月4日 申请日期2012年1月16日 优先权日2012年1月16日
发明者关健, 刘钰, 孙伟丰, 徐邵稀, 汪志, 王文军, 程仁波, 罗正海, 胡选来, 赖铮, 赵伟, 郑程光 申请人:上海方正数字出版技术有限公司