一、背景:
ArcGIS提供了两个工具来创建企业级地理数据库,一个是Create EnterpriseGeodatabase,一个是Enable Enterprise Geodatabase。一般情况下都推荐使用Create Enterprise Geodatabase,因为这个工具只需要用户提供几个主要参数,就可以完成创建企业级地理数据库的全过程。但是当我们遇到无法获取数据库管理员(SYS)的密码的时候,就可以选择Enable EnterpriseGeodatabase工具。
二、步骤:
第一步,
完成Oracle数据库的安装。必须知道数据库的IP地址和服务名,在第六步连接的时候需要填写。
第二步,
将以下六个包的执行权限赋给公共角色,执行如下。
GRANT EXECUTE ON dbms_pipe TO public;
GRANT EXECUTE ON dbms_lock TO public;
GRANT EXECUTE ON dbms_lob TO public;
GRANT EXECUTE ON dbms_utility TO public;
GRANT EXECUTE ON dbms_sql TO public;
GRANT EXECUTE ON utl_raw TO public;
第三步,
创建表空间(表空间的大小参数可自定义,此处只是示例,创建了一个大小为400M的可自动扩展表空间)。
第四步,
使用sys或者system用户登陆sqlplus,创建用户sde,并将第三步创建的表空间sde指定给用户sde,同时让sde用户有对表空间sde有无大小限制的使用权限。
第五步,
授予SDE用户权限,执行如下。
grant CREATE SESSION,CREATE TABLE,CREATETRIGGER,CREATE SEQUENCE,CREATE PROCEDURE,CREATE INDEXTYPE,CREATE LIBRARY,CREATEOPERATOR,CREATE PUBLIC SYNONYM,CREATE TYPE,CREATE VIEW ,DROP PUBLICSYNONYM,ADMINISTER DATABASE TRIGGER to sde;
grant EXECUTE ON DBMS_CRYPTO to sde;
每一个权限的用途可参考下表。
权限 | 用途 |
CREATE SESSION | 连接到 Oracle。 |
CREATE TABLE CREATE TRIGGER | 创建地理数据库资料档案库。 |
CREATE SEQUENCE | 创建序列以生成 ID。创建地理数据库后可撤消此权限。 |
CREATE PROCEDURE | 创建用于维护地理数据库系统表内容的包。 |
EXECUTE ON DBMS_CRYPTO | 允许创建 ST_Geometry 类型的地图成员函数,可在执行空间合并或相交时随时调用该函数。 |
CREATE INDEXTYPE CREATE LIBRARY CREATE OPERATOR CREATE PUBLIC SYNONYM CREATE TYPE CREATE VIEW DROP PUBLIC SYNONYM | 创建 ST_Geometry 和 ST_Raster 等用户定义的数据类型以及用于查询优化的类型。创建以下系统视图时需要使用 CREATE VIEW:GDB_Items_vw 和 GDB_ItemRelationships_vw。创建地理数据库后可撤消这些权限。 |
ADMINISTER DATABASE TRIGGER | 通过 SQL 删除、更改或重命名包含 ST_Geometry 列的表时,创建修改 ST_GEOMETRY_COLUMNS 和 ST_GEOMETRY_INDEX 表所需的数据库事件触发器。创建地理数据库后可撤消此权限。 |
第六步,使用SDE用户建立新数据库连接。此处填写第一步创建Oracle时的IP和服务名
第七步,使用Enable EnterpriseGeodatabase工具。将数据库连接中的连接节点拖拽至第一个参数栏,第二个参数选择ecp授权文件。
第八步,创建成功