在Oracle上创建SDE空间库的规范化流程
-
创建表空间
CREATE TABLESPACE sdetablespace DATAFILE
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SDEDATA01.DBF' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
LOGGING
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
-
创建SDE用户并授权
--首先创建SDE用户:
CREATE USER SDE IDENTIFIED BY sde
DEFAULT TABLESPACE "SDETABLESPACE"
TEMPORARY TABLESPACE "TEMP"
QUOTA UNLIMITED ON "SDETABLESPACE";
--必须为公共角色授予对这些包的执行权限
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;
--说明:创建或升级地理数据库后,您可以限制这些包的权限,方法是:将这些执行权限从公共角色中撤消,然后为登录地理数据库的每个单独的用户(包括地理数据库管理员)授予这些执行权限。在向各用户授予执行权限后,重新编译 sde 方案:
EXEC dbms_utility.compile_schema( 'SDE' );
--赋予SDE权限管理权限
GRANT CREATE SESSION,
CREATE TABLE,
CREATE VIEW,
CREATE PROCEDURE,
CREATE SEQUENCE,
CREATE TRIGGER,
CREATE TYPE,
CREATE INDEXTYPE,
CREATE LIBRARY,
CREATE PUBLIC SYNONYM,
DROP PUBLIC SYNONYM,
ADMINISTER DATABASE TRIGGER,
CREATE OPERATOR
TO SDE;
说明:一般来说,上述两个步骤都是数据库管理员来操作,业务端只需要提交说明即可,需要说明的是Oracle中创建SDE空间数据库,必须要创建以SDE为名的数据库用户。
-
配置Oracle32位客户端
-
到Oracle管网下载instantclient-basic-nt-11.2.0.2.0-win32.zip,解压:
-
在系统环境变量Path路径中添加Oracle客户端的根目录;
-
从数据库中拷贝tnsname.ora文件到oracle客户端的根目录下,同时配置服务连接到Oracle数据库,如下图所示:
-
在系统系统环境变量中,添加一个环境变量TNS_ADMIN,这个变量的值指向tnsnames.ora文件的路径如下图所示:
-
tnsnames.ora内容格式:
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP )(PORT = 7521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl )
)
)
- 在ArcMap中用SDE账户连接到Oracle
这一步的目的是为了下一步创建SDE空间库做准备。
-
使用【启用企业级地理数据库】工具创建SDE库
说明:启用企业级地理数据库工具用于在现有数据库中创建地理数据库系统表、存储过程、函数和类型,从而启用数据库中的地理数据库功能。
- 输入数据库连接使用上一步创建的SDE连接
- 许可格式是ecp
点击确认之后会提示已经创建成功,如下图所示:
- 备注
删除用户
drop user SDE cascade;
删除表空间
DROP TABLESPACE sdetablespace INCLUDING CONTENTS AND DATAFILES;