1 常见用户需求
在发布和使用GIS服务的过程中,经常会遇到如下的一些需求:
1) 同一个服务,不同用户访问不同的图层
2) 同一个图层,只允许个别用户进行编辑
3) 图层中包含的敏感信息,只允许少数用户访问
4) 图层中的特殊字段,只允许个别用户编辑
5) 同一个图层,不同部门的用户只能访问相关的要素
6) ……
这是很常见的一些服务安全控制需求,针对这些需求,ArcGIS提供了完整的解决方案—数据库集成安全。
2 数据库集成安全
数据库集成安全是将ArcGIS Server安全机制与数据库的安全体系进行集成,使ArcGIS Server服务能够对数据源进行更细粒度的安全控制。目前数据库集成安全暂时只支持Oracle数据库。
2.1 访问粒度
通过数据库集成安全,可以达到以下三级访问粒度:
1) 控制用户是否有权限访问特定图层 / 表
2) 控制用户是否有权限访问特定属性 / 列
3) 控制用户是否有权限访问特定要素 / 记录
2.2 实现原理
要实现数据库集成安全,需要进行如下几个步骤:
1) 建立与Server角色对应的数据库角色
2) 建立与Server用户对应的数据库用户
3) 将对表、列、记录的访问权限授予数据库角色
3 如何实现
3.1 图层访问控制
3.1.1 创建地图编辑账户
为了支持数据库集成安全,编辑地图的用户需要具备所需的数据库权限。因此首先创建地图编辑用户(使用数据库管理员账户创建),SQL语句如下:
CREATE USER mapeditor IDENTIFIED BY mapeditor
DEFAULT TABLESPACE huangdsde
TEMPORARY TABLESPACE temp;
然后给用户授予必需的权限:
GRANT CONNECT, RESOURCE TO mapeditor;
注意:这里的用户名必须采用小写格式。