在集合和用户群规模都较大且是动态的情况下,对集合中的单个数据对象进行访问授权会比较困难。如果授权策略是基于数据对象的时间和空间参照,这将变得更为复杂。本文以我的公司CycloMedia Technology的真实场景为例,给大家介绍了这一问题的解决方案,该方案结合使用了Oracle数据库企业版的两个组件:Spatial选件和虚拟专用数据库特性。
CycloMedia Technology
CycloMedia专业从事基于360度的全景图像(即环形全景图)实现环境的系统性大规模可视化。要创建环形全景图,需要对广阔区域进行拍照,并将其输入到联机数据库。注册完每个记录、位置、方位后,就可以实现多样化的应用,如3-D测量和建模。(请参见以下示例。)
图像 Id | 记录位置 | 记录日期时间 |
43c5klf8h0cg | 5.70698580234006,50.8474750817698 | 2005-03-12 15:22 |
6ju83ks7u6pg | 4.59019800392403,52.4622636292842 | 2004-08-02 08:51 |
85s8hi4nl7u2 | 6.9008111752263,52.4115443666161 | 2006-06-21 12:17 |
.... | .... | .... |
图 1 使用地理空间数据的环形全景图示例
DCR7 是 CycloMedia 自行开发的一系列记录系统中最新的模型,可用于表现外观质量、量度精度和高速直观记录。DCR7 能够以 5 米间隔、80 公里/小时的速度生成环形全景图,CycloMedia 有意使用它将欧洲大部分公共空间转化为图像。由于这些进步,环形全景图集合有望快速增长。
授权挑战
在 CycloMedia 案例中,我们面临着这样一种情况,即需要向许多用户授予对带有空间和时间参照的动态对象集合的访问权。授权参数基于集合的时间和空间维度。
传统上,这一问题的解决方案是创建静态数据集或授权表来描述每个主体(客户端或用户)与集合中各对象之间的每一种单一关系。构建这些数据集和表通常要使用专业工具来计算对象和授权区域之间的空间关系。
当用户群体和集合都较大且是动态的情况下,构建和维护这些即席数据集和授权表以支持访问控制并不合适。而且,即席数据不支持访问控制策略中的灵活保护粒度和动态变化。
近来提出的几个解决方案有着不同缺点。导致这些缺点的主要原因与所提出的解决方案的体系结构相关。在数据库外实施授权,或在执行查询后实施授权,因此限制了数据的使用。甚至 Open Geospatial Consortium 当前建议的新标准 GeoXACML 体系结构也存在问题。它基于用于空间数据(GML、WMS)和授权 (XACML) 的标准,为不受保护的 Web 地图服务提供了一种无需更改现有基础架构即可进行访问控制的解决方案。为此,它拦截了传输至 WMS 的消息,对目标 WMS 执行检索任务,将检索结果发送至决策点,然后基于得到的授权决定创建结果集。
这一概念在很大程度上基于这一体系结构原型,该原型会导致一些效率低下的后果:所有数据均选自原始数据库,然后转换为 GML, 再使用外部工具根据授权策略按特征逐一划分并计算。因此无法使用原始数据库中的空间索引,而且必须在其他组件中实施空间比较函数。另外,该体系结构不能执行复杂的分析任务,因为数据首先经过了选择然后依据授权策略进行了筛选。即使是简单查询最近邻居也会出问题:您最后可能会发现一开始所选择的最近对象是无法到达的。