CN103870548A - 空间数据库的访问控制方法 - Google Patents
空间数据库的访问控制方法 Download PDFInfo
- Publication number
- CN103870548A CN103870548A CN201410067662.0A CN201410067662A CN103870548A CN 103870548 A CN103870548 A CN 103870548A CN 201410067662 A CN201410067662 A CN 201410067662A CN 103870548 A CN103870548 A CN 103870548A
- Authority
- CN
- China
- Prior art keywords
- access
- rule
- node
- access rule
- spatial
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本发明中公开了一种空间数据库的访问控制方法,该访问控制方法中通过向R+树中添加访问规则实现对空间数据库授权,并根据访问请求对添加有访问规则的R+树进行搜索,根据搜索结果从空间数据库中得到空间实体后,还进一步根据访问请求和相应的访问规则对各个对空间实体进行裁剪,将裁剪后空间实体返回给用户。该访问控制方法中不仅支持对空间实体的授权,还支持对实体进行细粒度拆分后的授权,访问控制规则可以只覆盖空间实体的一部分,且同时将访问规则判定和空间检索的两次查询合并为一次,在一次查询中确定用户查询的结果并返回相应的信息,提高了授权查询效率,保障了访问带有权限限制的空间矢量数据时的响应速度。
Description
技术领域
本发明涉及计算机信息安全领域,尤其涉及一种空间数据库的访问控制方法。
背景技术
空间遥感和信息技术的发展使得空间数据的应用越来越广泛,空间数据的访问、管理和可视化研究已经走进了日常生活。日前已经有很多公司和组织通过地理信息系统为政府和公司在决策上提供空间数据查询、访问与分析服务。然而,一些敏感地理位置(如军事基地)的暴露给国家带来安全威胁。
现有的授权方法在数据库内部的实现主要包括访问控制列表、访问控制矩阵、查询改写等方式。但对空间数据进行矢量分析很费时间,一旦权限控制规则过多,十分影响查询效率。一般实现的都是粗粒度(文件或图层)的授权方法,而对细粒度(空间实体)考虑不足,而且权限控制的判断和空间数据的检索是分离的。
R+树是R树的一种变体,用空间实体的最小外包矩形来近似表达空间实体,并利用其最小外包矩形建立R+树,可以直接对空间中占据一定范围的空间实体进行索引。如图1所示,典型的R+树包括根节点、中间节点和叶节点。R+树的每一个节点(包括根节点、中间节点和叶节点)都对应着一个区域,即各个节点对应的MBR。根节点和中间节点均包括该节点的所有子节点的区域都在该节点的区域范围之内,并在节点中建立索引项,索引项由子节点的最小外包矩形和指向子节点的指针组成。通常将根节点作为是一种特殊的中间节点。
R+树的每一个节点都对应着一个区域。如果节点是中间节点,则该节点的所有子节点的区域都在该节点的区域范围之内,并在节点中建立索引项,索引项由子节点的最小外包矩形和指向子节点的指针组成。如果节点是叶节点,则该节点包含的空间实体的区域都与该节点的区域范围相交,并在节点中建立数据项,数据项由空间实体的最小外包矩形和该空间实体的ID组成。根节点是特殊的中间节点,对应整个区域。
由于空间数据库数据量庞大,空间数据模型复杂,属性数据和空间数据联合管理等特点,传统数据库的授权方法并不能直接应用于空间数据库的保护,因此需要根据空间数据的表示方法、访问模式、实时性等特点为其建立比较有针对性的授权方法。
发明内容
针对现有技术的不足,本发明提供了一种具有针对性的空间数据库的访问控制方法。
一种空间数据库的访问控制方法,包括:
(1)建立空间数据库的R+树,根据需求构建具有若干条访问规则的访问规则集合;
(2)将所述访问规则集合中的各条访问规则添加至所述R+树中的各个节点中,得到具有访问规则的R+树;
(3)根据访问请求从具有访问规则的R+树的根节点开始,逐层向下搜索,得到所有符合访问请求的数据项,所述的数据项包括该空间实体编号以及该空间实体的最小包围矩形和对应的访问规则;
(4)针对所有符合访问请求的数据项,根据数据项中的空间实体编号访问空间数据库中各个数据项对应的空间实体,针对访问的每一个空间实体,根据访问请求和与该空间实体对应的访问规则对该空间实体进行裁剪,并将经过裁剪后的空间实体返回给用户。
本发明中的访问控制方法中以R+树作为索引树,通过向R+树中添加访问规则实现对空间数据库授权,并根据访问请求对添加有访问规则的R+树进行搜索,根据搜索结果从空间数据库中得到空间实体后,还进一步根据访问请求和相应的访问规则对各个对空间实体进行裁剪,将裁剪后空间实体返回给用户。该控制访问方法不仅支持对空间实体的授权,还支持对实体进行细粒度拆分后的授权,权限控制的最小单位不是空间实体,访问控制规则可以只覆盖空间实体的一部分。同时将访问规则判定和空间检索的两次查询合并为一次,在一次查询中确定用户查询的结果并返回相应的信息,提高了授权查询效率,保障了访问带有权限限制的空间矢量数据时的响应速度。
所述步骤(1)中根据空间实体的敏感程度确定能够访问的用户类型及所需密级,据此构建具有若干条访问规则的访问规则集合,利用多条访问规则,实现敏感数据的授权访问。
所述访问规则包括访问规则编号、非空间过滤条件,以及该访问规则的适用空间范围和权限标签。
各条访问规则的访问规则编号一般在构建访问规则集合时形成,一般在整个过程中不再改变,且各条访问规则的访问规则编号互不相同且是唯一的。
空间数据中空间实体具有多种除空间外的属性,非空间过滤条件是从非空间属性(除空间外的其他属性)的角度对该访问规则的适用范围的限定,该非空间过滤条件可以没有,也可以有多条,不同的访问规则的非空间条件之间独立。
作为优选,所述的访问规则适用空间范围为空间矩形。实际上该适用空间范围的形状可以是任意的,但由于R+树中各个节点对应的区域均为矩形区域,因此设定的访问规则的适用空间范围为空间矩形,便于将各个访问规则插入R+树中,且有利于提高访问请求的访问效率。
所述的权限标签包括对应的访问规则的密级和允许访问的用户类型。
每条访问规则权限标签根据使用空间范围和应用需求设定合适的权限标签,保证所有保护的信息只能够被部分具有特定权限的用户访问。
所述的具有访问规则的R+树中根节点和中间节点均包括访问规则项和索引项,叶节点包括访问规则项和数据项,所述的数据项包括空间实体编号、以及对应空间实体的最小包围矩形和访问规则;
所述的访问规则项包括全局访问规则集合和局部访问规则集合,
所述的全局访问规则集合为所在节点(包括叶节点、中间节点和根节点)中适用空间范围包括该节点的最小包围矩形的访问规则的集合,
所述的局部访问规则集合为所在节点中适用空间范围与该节点的最小包围矩形部分相交的访问规则的集合。
现有的R+树(为添加访问规则的R+树)中间节点(包括根节点,根节点认为是特殊的中间节点)只包括索引项,叶节点只包括数据项,且数据项中只包括空间实体编号、以及对应空间实体的最小包围矩形。添加完访问规则实际上是向R+树中各个节点添加访问规则项,向叶节点中的各个数据项添加访问规则。添加完成后R+树通过各个节点上的访问规则项以及数据项中的访问规则的限制实现授权。
所述步骤(2)中根据访问规则的适用空间范围和各个节点对应的最小包围矩形的关系,从根节点开始,根据以下方法将各条访问规则添加至所述R+树的每个节点中:
(a)若当前节点为根节点,针对构建得到的任意一条访问规则,判断当前访问规则的适用空间范围与当前节点对应的最小包围矩形的关系:
若当前访问规则的适用空间范围包含当前节点的对应的最小包围矩形,则将当前访问规则添加至当前节点的访问规则项中的全局访问规则集合中,
若当前访问规则的适用空间范围与当前节点的对应的最小包围矩形部分相交,则将当前访问规则添加至当前节点的访问规则项中的局部访问规则集合中;
(b)若当前节点为中间节点,针对当前节点的父节点的局部访问规则集合中的任意一条访问规则,判断当前访问规则的适用空间范围与当前节点对应的最小包围矩形的关系:
若当前访问规则的适用空间范围包含当前节点对应的最小包围矩形,则将当前访问规则添加至当前节点的访问规则项中的全局访问规则集合中,
若当前访问规则的适用空间范围与当前节点对应的最小包围矩形部分相交,则生成与一条当前访问规则对应的子访问规则,并将所述的子访问规则添加至当前节点的访问规则项中的局部访问规则集合中,
生成所述的子访问规则时,先确定当前访问规则的适用空间范围与当前节点对应的最小包围矩形的相交区域,再利用所述的相交区域替代当前访问规则的适用空间范围;
(c)若当前节点为叶节点,根据所述步骤(b)中的方法得到该叶节点的全局部访问规则集合和局部访问规则集合,再针对该节点的任意一个数据项,将节点的局部访问规则集合中与当前数据项的最小包围矩形相交的访问规则作为当前数据项的访问规则。
从根节开始,利用访问规则的适用空间按范围和各个节点对应的空间范围,依次将构建的访问规则集合中的所有访问规则添加到R+树中的各个节点中,保证遍历所有的节点和数据项。根节点的添加方法实际上与中间节点的相同,所不同的是根节点添加的是访问规则集合中的访问规则,而中间节点是该中间节点对应的父节点中的局部访问规则集合中的访问规则。
所述的访问控制方法还包括对所述具有访问规则的R+树中进行访问规则添加操作和访问规则删除操作,其中:
访问规则添加操作:将待添加的访问规则添加至访问规则集合,对添加有待添加的访问规则的访问规则集合执行所述步骤(2);
访问规则删除操作:删除具有访问规则的R+树中与待删除访问编号相同的访问规则。
执行访问规则添加操作时,对应的访问规则添加操作请求必须包括完整的需要添加的访问规则(待添加访问规则),将待添加访问规则放入访问规则集合中时根据访问规则集合中已有的访问规则的访问规则编号,同时赋予待添加访问规则一个访问规则编号,然后重新执行添加过程,覆盖之前添加结果,重新形成具有访问规则的R+树。
所述的访问请求包括待访问空间范围、非空间查询条件和用户标签,所述的用户标签包括该访问请求的密级和用户类型。
访问请求所携带的信息与完成添加后的R+树中的访问规则向对应,根据访问请求搜索索引树,得到相应的所有结果。
所述步骤(3)包括:
(3-1)对于具有访问规则的R+树中的任意一个节点,判断当前节点对应的空间范围与所述访问请求的待访问空间范围是否相交:
若不相交,则不处理;
若相交,则对当前节点中全局访问规则集合中的任意一条访问规则,根据当前访问规则的权限标签和该访问请求的用户标签判断该访问请求是否能够控制当前访问规则:
若能够控制当前访问规则,则执行步骤(3-2);
若不能控制当前访问规则,则将该查询请求的非空间查询条件除去与当前访问规则的非空间过滤条件的相交区域,形成新的非空间查询条件,执行步骤(3-2);
(3-2)根据当前节点的类型进行如下操作:
若当前节点为叶节点,则针对该叶节点中的任意一个数据项,若该数据项的最小包围矩形与待访问空间范围相交,则认为该数据项为符合访问请求的数据项;
否则,根据该当前节点中的任意一个索引项,对该索引项对应的节点执行步骤(3-1)。
根据待访问空间范围与各条访问规则的适用空间范围的关系,访问请求中的用户标签和访问规则中的权限标签的关系,确定符合要求的数据项,并根据以上关系,利用访问规则中的非空间过滤条件更新访问请求中的非空间查询条件。因此查询完成后,可能针对不同的叶节点的非空间查询条件不同。
所述步骤(4)中通过以下步骤对空间实体进行裁剪包括:
(4-1)确定满足非空间查询条件的空间实体,
(4-2)针对各个满足非空间查询条件的空间实体,根据访问请求的用户标签和该空间实体对应的访问规则确定不能被该访问请求控制的访问规则;
(4-3)屏蔽该空间实体中所有不能被该访问请求控制的访问规则的适用空间范围。
通过裁剪使权限控制的最小单位不再是空间实体,可以对空间实体的一部分进行细粒度的权限控制。
本发明的空间数据库的访问控制方法以R+树为基础,完成空间数据库的访问控制,该访问控制方法支持多种粒度的授权,不仅支持对空间实体的授权,还支持对实体进行细粒度拆分后的授权,且该将访问规则判定和空间检索的两次查询合并为一次,在一次查询中确定用户查询的结果并返回相应的信息,提高了授权查询效率,保障了访问带有权限限制的空间矢量数据时的响应速度。
说明书附图
图1本实施例的空间数据库的空间范围分区以及石油资源的分布;
图2为本实施例的R+的区域划分图;
图3为本实施例的访问控制方法的流程图;
图4为R+树的结构;
图5为完成添加访问规则后的R+树的结构;
图6为用户访问的结果图。
具体实施方式
下面将结合具体实施例对本发明进行详细说明。
本实施例的空间数据库的访问控制方法面向石油资源,该空间数据库的空间范围分区以及石油资源的分布如图1所示,该空间数据库的空间范围为T,分为A、B、C和D四个空间区域,该空间数据库的空间范围内包括一个军事区military,该军事区military即为敏感区域。
此外,该空间数据库内包括5个油田,各个油田对应的空间范围的最小包围矩形分别为R1、R2、R3、R4和R5,其中R4对应的油田的储量在2000单位以上,其余的各油田储量均在2000单位以下。
根据该空间数据库中空间实体构建得到对应的R+树,该R+树的空间区域划分如图2所示,整个空间被分为M1,M2两个空间区域,图中虚线表示其对应的空间区域。M1中包含R1、R2和R3和部分R4对应的空间实体,M2中包含R5和部分R4对应的空间实体。
一种空间数据库的访问控制方法,如图3所示,包括:
(1)建立空间数据库的R+树,根据需求构建具有若干条访问规则的访问规则集合;
根据该空间数据库以及应用的面向对象构建得到对应的R+树,该R+树的结构如图4所示。该R+树中共有3个节点,一个根节点和两个叶节点。根节点对应整个区域,包含两个子区域M1、M2,对应根节点中的两个索引项。索引项中的NP为指向子节点的指针,MBR为子节点对应的空间范围。以M1对应的叶节点为例,M1包含了4个空间实体,对应叶节点中的四个数据项。数据项中的IID为该数据项对应的空间实体的编号,MBR为该数据项对应的空间实体的最小外包矩形。
根据应用需求以及该控制访问方法面向的对象设定访问规则,并将所有访问规则组成该空间数据库的访问规则集合。
本实施例中的访问规则包括访问规则编号、非空间过滤条件,以及该访问规则的适用空间范围和权限标签。其中适用空间范围为空间矩形,权限标签包括对应的访问规则的密级和允许访问的用户类型。
每条访问规则采用一个四元组<n,geo,ngeo,label>,其中:
n为访问规则编号,本实施例中访问规则集合共有6条访问规则,分别记为rule1,rule2,rule3,rule4,rule5和rule6,即访问规则编号为1,2,……,6;
geo为该访问规则的适用空间范围,geo=*,military,A、B、C、D,其中*表示整个空间数据库的空间范围,military表示军事区。
ngeo为非空间过滤条件,ngeo=(P,Q),P为面向对象,本实施例中面向对象为油田oil,则P=oil,Q为面向对象P的属性条件,本实施例中Q=null、reserves,null表示空集,即不存在属性条件,reserves为储油量。
label为权限标签,其中lable为(X,degree),X为允许访问的用户类型,访问规则的degree为密级。本实施例中X={},α,β,γ和δ,其中{}表示此访问规则对用户类型不做限制,α,β,γ和δ分别表示4个不同的用户类型。本实施例中degree=public,secret,topsecret,其中public为公开,secret为保密,topsecret为绝密。
本实施例中访问规则集合中用Rset表示,该访问规则集合Rset中共有6条访问规则,具体为:
Rset={<1,*,(oil,null),({},public)>,<2,military,(oil,null),({},topsecret)>,<3,A,(oil,null),({α},secret)>,<4,B,(oil,null),({β},secret)>,<5,C,(oil,reserves>2000),({γ},topsecret)>,<6,D,(oil,null),({δ},secret)>}。
(2)将访问规则集合中的各条访问规则添加至所述R+树中的各个节点中,得到具有访问规则的R+树。该具有访问规则的R+树的结构如图5所示,该R+树中的根节点和中间节点均包括访问规则项和索引项,叶节点包括访问规则项和数据项。各个节点的访问规则项均包括全局访问规则集合Arset和局部访问规则集合Prset,其中全局访问规则集合Arset为所在节点中适用空间范围包括该节点的最小包围矩形的访问规则的集合,局部访问规则集合Prset为所在节点中适用空间范围与该节点的最小包围矩形部分相交的访问规则的集合。数据项包括空间实体编号IID、以及对应空间实体的最小包围矩形MBR和访问规则RID。
该步骤中根据访问规则的适用空间范围和各个节点对应的最小包围矩形的关系,从根节点开始,根据以下方法将各条访问规则添加至步骤(1)构建得到的R+树的每个节点中:
(a)若当前节点为根节点,针对构建得到的任意一条访问规则,判断当前访问规则的适用空间范围与当前节点对应的最小包围矩形的关系:
若当前访问规则的适用空间范围包含当前节点的对应的最小包围矩形,则将当前访问规则添加至当前节点的访问规则项中的全局访问规则集合中,
若当前访问规则的适用空间范围与当前节点的对应的最小包围矩形部分相交,则将当前访问规则添加至当前节点的访问规则项中的局部访问规则集合中;
(b)若当前节点为中间节点,针对当前节点的父节点的局部访问规则集合中的任意一条访问规则,判断当前访问规则的适用空间范围与当前节点对应的最小包围矩形的关系:
若当前访问规则的适用空间范围包含当前节点对应的最小包围矩形,则将当前访问规则添加至当前节点的访问规则项中的全局访问规则集合中,
若当前访问规则的适用空间范围与当前节点对应的最小包围矩形部分相交,则生成与一条当前访问规则对应的子访问规则,并将所述的子访问规则添加至当前节点的访问规则项中的局部访问规则集合中,
生成所述的子访问规则时,先确定当前访问规则的适用空间范围与当前节点对应的最小包围矩形的相交区域,再利用所述的相交区域替代当前访问规则的适用空间范围;
(c)若当前节点为叶节点,根据步骤(b)中的方法得到该叶节点的全局访问规则集合和局部访问规则集合,再针对该节点的任意一个数据项,将节点的局部访问规则集合中与前数据项的最小包围矩形相交的访问规则作为当前数据项的访问规则。
对访问规则rule1开始,判断访问规则rule1的适用空间范围rule1.geo与根节点对应的空间范围的关系,由于rule1.geo=*,则将其添加到根节点的全局访问规则集合ARset中。依次判断访问规则集合Rset中的访问规适用空间范围与根节点对应的空间范围的关系,将剩余的访问规则添加到根节点中。添加完后结果根节点的访问规则项如下:全局访问规则集合Arset={rule1},局部访问规则集合PRset={rule2,rule3,rule4,rule5,rule6}。
本实施例中的R+树中不存在除根节点之外的其他中间节点,即根节点的各个索引项均直接指向的叶节点。依次对各个索引项指向的叶节点添加访问规则,对各个叶节点添加访问规则时,根据各叶节点的父节点(即根节点)中的局部访问规则集合PRset={rule2,rule3,rule4,rule5,rule6}中的各条访问规则与相应叶节点对应的空间范围,生成与对应的各条规则对应的子访问规则rule21、rule31、rule41、rule51和rule61,并将生成的子访问规则添加到相应的叶节点中,形成该各个叶节点的全局访问规则集合和局部访问规则集合,并进一步对每个叶节点的局部访问规则集合,根据局部访问规则集合中各条访问规则与各个数据项对应的空间实体的最小包围矩形的关系,将该集合中的各条访问规则(即为生成的子访问规则)添加到相应的数据项中。
本实施例中添加完成后的R+树中:
根节点的规则项中的全局访问规则集合Arset={rule1},局部访问规则集合PRset={rule2,rule3,rule4,rule5,rule6}。
该根节点中NP=N1的索引项指向(对应)的叶节点中的全局访问规则集合Arset为空集,局部访问规则集合PRset={rule21,rule31,rule41,rule51},该叶节点中的四个数据项对应的访问规则分别如下:
对应的实体空间的最小包围矩形为R1的数据项的访问规则为rule31,
对应的实体空间的最小包围矩形为R2的数据项的访问规则为rule21、rule31、rule41和rule51,
对应的实体空间的最小包围矩形为R3的数据项的访问规则为rule41和rule51,
对应的实体空间的最小包围矩形为R4的数据项中的访问规则为rule51。
该根节点中NP=N2的索引项指向的叶节点中的全局访问规则集合Arset={rule61},局部访问规则集合PRset为空集,该叶节点中的四个数据项对应的访问规则分别如下:
对应的实体空间的最小包围矩形为R4的数据项的不存在对应的访问规则,
对应的实体空间的最小包围矩形为R5的数据项的不存在对应的访问规则。
本实施例中任意一条访问规则的子访问规则仅仅是适用空间范围与该访问规则不同,其他项(访问规则编号、非空间过滤条件和权限标签)均相同。本实施例中各条访问规则的子访问规则如下:
访问规则rule2的子访问规则rule21为<2,military∧M1,(oil,null),({},topsecret)>,
访问规则rule3的子访问规则rule31为<3,A∧M1,(oil,null),({α},secret)>,
访问规则rule4的子访问规则rule41为<4,B∧M1,(oil,null),({β},secret)>,
访问规则rule5的子访问规则rule51为<5,C∧M1,(oil,reserves>2000),({γ},topsecret)>,
访问规则rule6的子访问规则rule61为<6,D∧M2,(oil,null),({δ},secret)>,其中“∧”表示取相交区域,如:A∧M1表示取A与M1的相交区域。
(3)根据访问请求从具有访问规则的R+树的根节点开始,逐层向下搜索,得到所有符合访问请求的数据项,数据项包括该空间实体编号以及该空间实体的最小包围矩形和对应的访问规则,该访问请求包括待访问空间范围、非空间查询条件和用户标签,所述的用户标签包括该访问请求的密级和用户类型,具体搜索过程如下:
(3-1)对于具有访问规则的R+树中的任意一个节点,判断当前节点对应的空间范围与所述访问请求的待访问空间范围是否相交:
若不相交,则不处理;
若相交,则对当前节点中全局访问规则集合中的任意一条访问规则,根据当前访问规则的权限标签和该访问请求的用户标签判断该访问请求是否能够控制当前访问规则:
若能够控制当前访问规则,则执行步骤(3-2);
若不能控制当前访问规则,则将该查询请求的非空间查询条件除去与当前访问规则的非空间过滤条件的相交区域,形成新的非空间查询条件,执行步骤(3-2);
(3-2)根据当前节点的类型进行如下操作:
若当前节点为叶节点,则针对该叶节点中的任意一个数据项,若该数据项的最小包围矩形与待访问空间范围相交,则认为该数据项为符合访问请求的数据项;
否则,根据该当前节点中的任意一个索引项,该索引项对应的节点执行步骤(3-1)。
本实施例中的访问请求采用三元组表示,为<({γ},secret),*,{}>,即该访问请求的用户标签为({γ},secret),待访问空间范围为全境(即整个数据空间对应的空间范围),非空间查询条件为空(即不存在非空间查询条件)。
查询得到满足访问请求的数据项为M1对应叶节点中的四个数据项,最终得到的非空间查询条件为空。
(4)针对所有符合访问请求的数据项,根据数据项中的空间实体编号访问空间数据库中各个数据项对应的空间实体,针对访问的每一个空间实体,根据访问请求和与该空间实体对应的访问规则对该空间实体进行裁剪,并将经过裁剪后的空间实体返回给用户,返回结果如图6所示,用户能够访问到最小包围矩形为R2和R3对应的油田的一部分(图中虚线所示的部分)。
本实施例中具体裁剪过程如下:
(4-1)确定满足非空间查询条件的空间实体,
(4-2)针对各个满足非空间查询条件的空间实体,根据访问请求的用户标签和该空间实体对应的访问规则确定不能被该访问请求控制的访问规则;
(4-3)屏蔽该空间实体中所有不能被该访问请求控制的访问规则的适用空间范围。
本实施例的访问控制方法还包括对所述具有访问规则的R+树中进行访问规则添加操作和访问规则删除操作,其中:
访问规则添加操作:将待添加的访问规则添加至访问规则集合,对添加有待添加的访问规则的访问规则集合执行步骤(2);
访问规则删除操作:删除具有访问规则的R+树中与待删除访问编号相同的访问规则。
Claims (10)
1.一种空间数据库的访问控制方法,其特征在于,包括:
(1)建立空间数据库的R+树,根据需求构建具有若干条访问规则的访问规则集合;
(2)将所述访问规则集合中的各条访问规则添加至所述R+树中的各个节点中,得到具有访问规则的R+树;
(3)根据访问请求从具有访问规则的R+树的根节点开始,逐层向下搜索,得到所有符合访问请求的数据项,所述的数据项包括该空间实体编号以及该空间实体的最小包围矩形和对应的访问规则;
(4)针对所有符合访问请求的数据项,根据数据项中的空间实体编号访问空间数据库中各个数据项对应的空间实体,针对访问的每一个空间实体,根据访问请求和与该空间实体对应的访问规则对该空间实体进行裁剪,并将经过裁剪后的空间实体返回给用户。
2.如权利要求1所述的空间数据库的访问控制方法,其特征在于,所述访问规则包括访问规则编号、非空间过滤条件,以及该访问规则的适用空间范围和权限标签。
3.如权利要求2所述的空间数据库的访问控制方法,其特征在于,所述的访问规则适用空间范围为空间矩形。
4.如权利要求3所述的空间数据库的访问控制方法,其特征在于,所述的权限标签包括对应的访问规则的密级和允许访问的用户类型。
5.如权利要求4所述的空间数据库的访问控制方法,其特征在于,所述的具有访问规则的R+树中根节点和中间节点均包括访问规则项和索引项,叶节点包括访问规则项和数据项,所述的数据项包括空间实体编号、以及对应空间实体的最小包围矩形和访问规则;
所述的访问规则项包括全局访问规则集合和局部访问规则集合,
所述的全局访问规则集合为所在节点中适用空间范围包括该节点的最小包围矩形的访问规则的集合,
所述的局部访问规则集合为所在节点中适用空间范围与该节点的最小包围矩形部分相交的访问规则的集合。
6.如权利要求5所述的空间数据库的访问控制方法,其特征在于,所述步骤(2)中根据访问规则的适用空间范围和各个节点对应的最小包围矩形的关系,从根节点开始,根据以下方法将各条访问规则添加至所述R+树的每个节点中:
(a)若当前节点为根节点,针对构建得到的任意一条访问规则,判断当前访问规则的适用空间范围与当前节点对应的最小包围矩形的关系:
若当前访问规则的适用空间范围包含当前节点的对应的最小包围矩形,则将当前访问规则添加至当前节点的访问规则项中的全局访问规则集合中,
若当前访问规则的适用空间范围与当前节点的对应的最小包围矩形部分相交,则将当前访问规则添加至当前节点的访问规则项中的局部访问规则集合中;
(b)若当前节点为中间节点,针对当前节点的父节点的局部访问规则集合中的任意一条访问规则,判断当前访问规则的适用空间范围与当前节点对应的最小包围矩形的关系:
若当前访问规则的适用空间范围包含当前节点对应的最小包围矩形,则将当前访问规则添加至当前节点的访问规则项中的全局访问规则集合中,
若当前访问规则的适用空间范围与当前节点对应的最小包围矩形部分相交,则生成与一条当前访问规则对应的子访问规则,并将所述的子访问规则添加至当前节点的访问规则项中的局部访问规则集合中,
生成所述的子访问规则时,先确定当前访问规则的适用空间范围与当前节点对应的最小包围矩形的相交区域,再利用所述的相交区域替代当前访问规则的适用空间范围;
(c)若当前节点为叶节点,根据所述步骤(b)中的方法得到该叶节点的全局部访问规则集合和局部访问规则集合,再针对该节点的任意一个数据项,将节点的局部访问规则集合中与当前数据项的最小包围矩形相交的访问规则作为当前数据项的访问规则。
7.如权利要求6所述的空间数据库的访问控制方法,其特征在于,所述的访问控制方法还包括对所述具有访问规则的R+树中进行访问规则添加操作和访问规则删除操作,其中:
访问规则添加操作:将待添加的访问规则添加至访问规则集合,对添加有待添加的访问规则的访问规则集合执行所述步骤(2);
访问规则删除操作:删除具有访问规则的R+树中与待删除访问编号相同的访问规则。
8.如权利要求7所述的空间数据库的访问控制方法,其特征在于,所述的访问请求包括待访问空间范围、非空间查询条件和用户标签,所述的用户标签包括该访问请求的密级和用户类型。
9.如权利要求8所述的空间数据库的访问控制方法,其特征在于,所述步骤(3)包括:
(3-1)对于具有访问规则的R+树中的任意一个节点,判断当前节点对应的空间范围与所述访问请求的待访问空间范围是否相交:
若不相交,则不处理;
若相交,则对当前节点中全局访问规则集合中的任意一条访问规则,根据当前访问规则的权限标签和该访问请求的用户标签判断该访问请求是否能够控制当前访问规则:
若能够控制当前访问规则,则执行步骤(3-2);
若不能控制当前访问规则,则将该查询请求的非空间查询条件除去与当前访问规则的非空间过滤条件的相交区域,形成新的非空间查询条件,执行步骤(3-2);
(3-2)根据当前节点的类型进行如下操作:
若当前节点为叶节点,则针对该叶节点中的任意一个数据项,若该数据项的最小包围矩形与待访问空间范围相交,则认为该数据项为符合访问请求的数据项;
否则,根据该当前节点中的任意一个索引项,对该索引项对应的节点执行步骤(3-1)。
10.如权利要求9所述的空间数据库的访问控制方法,其特征在于,所述步骤(4)中通过以下步骤对空间实体进行裁剪包括:
(4-1)确定满足非空间查询条件的空间实体,
(4-2)针对各个满足非空间查询条件的空间实体,根据访问请求的用户标签和该空间实体对应的访问规则确定不能被该访问请求控制的访问规则;
(4-3)屏蔽该空间实体中所有不能被该访问请求控制的访问规则的适用空间范围。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410067662.0A CN103870548B (zh) | 2014-02-26 | 2014-02-26 | 空间数据库的访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410067662.0A CN103870548B (zh) | 2014-02-26 | 2014-02-26 | 空间数据库的访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103870548A true CN103870548A (zh) | 2014-06-18 |
CN103870548B CN103870548B (zh) | 2017-01-04 |
Family
ID=50909078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410067662.0A Active CN103870548B (zh) | 2014-02-26 | 2014-02-26 | 空间数据库的访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870548B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623662A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 访问的控制方法,装置和系统 |
CN109684793A (zh) * | 2018-12-29 | 2019-04-26 | 北京神舟航天软件技术有限公司 | 一种基于权限域结构树进行数据权限管理的方法 |
CN109815654A (zh) * | 2019-01-23 | 2019-05-28 | 山东浪潮通软信息科技有限公司 | 一种数据访问控制方法及装置 |
CN109885775A (zh) * | 2019-03-05 | 2019-06-14 | 重庆工商大学融智学院 | 一种实现生态环境空间大数据集成共享的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828586A (zh) * | 2005-12-21 | 2006-09-06 | 泰为信息科技(上海)有限公司 | 计算机上基于Flash技术的电子地图生成与显示的方法 |
US7167856B2 (en) * | 2001-05-15 | 2007-01-23 | Jonathan Keir Lawder | Method of storing and retrieving multi-dimensional data using the hilbert curve |
CN1933411A (zh) * | 2006-09-28 | 2007-03-21 | 江苏天泽信息产业有限公司 | 基于互联网发布矢量地图的方法 |
US7266545B2 (en) * | 2001-08-07 | 2007-09-04 | International Business Machines Corporation | Methods and apparatus for indexing in a database and for retrieving data from a database in accordance with queries using example sets |
CN101231642A (zh) * | 2007-08-27 | 2008-07-30 | 中国测绘科学研究院 | 时空数据库管理方法及其系统 |
-
2014
- 2014-02-26 CN CN201410067662.0A patent/CN103870548B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167856B2 (en) * | 2001-05-15 | 2007-01-23 | Jonathan Keir Lawder | Method of storing and retrieving multi-dimensional data using the hilbert curve |
US7266545B2 (en) * | 2001-08-07 | 2007-09-04 | International Business Machines Corporation | Methods and apparatus for indexing in a database and for retrieving data from a database in accordance with queries using example sets |
CN1828586A (zh) * | 2005-12-21 | 2006-09-06 | 泰为信息科技(上海)有限公司 | 计算机上基于Flash技术的电子地图生成与显示的方法 |
CN1933411A (zh) * | 2006-09-28 | 2007-03-21 | 江苏天泽信息产业有限公司 | 基于互联网发布矢量地图的方法 |
CN101231642A (zh) * | 2007-08-27 | 2008-07-30 | 中国测绘科学研究院 | 时空数据库管理方法及其系统 |
Non-Patent Citations (2)
Title |
---|
邓红艳等: "《一种用于空间数据多尺度表达的R 树索引结构》", 《计算机学报》 * |
郑玉明等: "《空间数据库引擎的R树索引》", 《计算机工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623662A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 访问的控制方法,装置和系统 |
CN107623662B (zh) * | 2016-07-15 | 2021-06-01 | 阿里巴巴集团控股有限公司 | 访问的控制方法,装置和系统 |
CN109684793A (zh) * | 2018-12-29 | 2019-04-26 | 北京神舟航天软件技术有限公司 | 一种基于权限域结构树进行数据权限管理的方法 |
CN109815654A (zh) * | 2019-01-23 | 2019-05-28 | 山东浪潮通软信息科技有限公司 | 一种数据访问控制方法及装置 |
CN109815654B (zh) * | 2019-01-23 | 2023-04-07 | 浪潮通用软件有限公司 | 一种数据访问控制方法及装置 |
CN109885775A (zh) * | 2019-03-05 | 2019-06-14 | 重庆工商大学融智学院 | 一种实现生态环境空间大数据集成共享的方法 |
CN109885775B (zh) * | 2019-03-05 | 2020-03-17 | 重庆工商大学融智学院 | 一种实现生态环境空间大数据集成共享的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103870548B (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lv et al. | BIM big data storage in WebVRGIS | |
Deng et al. | Best keyword cover search | |
CN109947889A (zh) | 空间数据管理方法、装置、设备和存储介质 | |
Ding et al. | IoT‐SVKSearch: a real‐time multimodal search engine mechanism for the internet of things | |
CN106339450A (zh) | 一种树形数据的索引方法 | |
CN103870548A (zh) | 空间数据库的访问控制方法 | |
Vangenot et al. | Modelling and manipulating multiple representations of spatial data | |
CN113821777A (zh) | 权限控制方法、装置、计算机设备和存储介质 | |
Shangguan et al. | Big spatial data processing with Apache Spark | |
CN111475653B (zh) | 油气勘探开发领域的知识图谱的构建方法及装置 | |
CN104182503A (zh) | 云平台数据访问安全隔离方法 | |
Xiong et al. | Data vitalization's perspective towards smart city: a reference model for data service oriented architecture | |
Nasution et al. | Data management as emerging problems of data science | |
Ravada et al. | Oracle8i spatial: Experiences with extensible databases | |
Li et al. | Efficient path query processing over massive trajectories on the cloud | |
Walter et al. | Structured specification of a security kernel | |
Yao et al. | LandQ v1: A GIS cluster-based management information system for arable land quality big data | |
Yang et al. | Classifying urban functional zones by integrating POIs, Place2vec, and LDA | |
Liu et al. | Trajectory privacy data publishing scheme based on local optimisation and R-tree | |
Wei et al. | A method and application for constructing a authentic data space | |
CN107506416B (zh) | 一种基于边界的权限缓存最小化方法 | |
Deng et al. | Homestead Engineering Planning Based on CAD Internet of Things Technology | |
CN110019338A (zh) | 一键获取跨平台信息的全文检索系统 | |
Ahmed et al. | Data Matching: An Algorithm for Detecting and Resolving Anomalies in Data Federation | |
CN114741526B (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 |