Oracle 中地理数据库的用户权限

必须根据用户要在 Oracle 数据库中执行的操作为用户授予特定权限。可以为角色授予一些权限,但有些权限是必须直接授予用户的。

本主题中的第一部分列出了所有用户都需要的包权限。您必须对公共角色授予这些权限以创建和升级地理数据库。但是,如果您想撤消公共角色的这些权限,可以在创建或升级完地理数据库后为所有单独的用户授予这些权限。

第二部分列出的是普通用户类型至少需要的数据库权限:数据查看人员、数据编辑人员、数据创建人员和地理数据库管理员。除了第一部分中所列出的权限外,这些用户还需要本部分所列出的各种权限。

第三部分列出的是地理数据库管理员创建或升级地理数据库所需的权限。除了第一部分所列出的权限外,地理数据库管理员还需要这些权限才能执行相关操作。

最后一部分列出的是通常可选择性地分配给 Oracle 地理数据库中各用户的权限。

您可以使用 Oracle 的企业管理器管理用户的权限。也可以使用 SQL 语句来授予和撤消权限。

包权限

需要对以下包授予执行权限:

要创建或升级地理数据库,您必须为公共角色授予对这些包的执行权限。

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;

提示提示:

在 Oracle 中,默认情况下,将自动为公共角色授予对 dbms_utility、dbms_sql 和 utl_raw 的执行权限。因此,如果已经从公共角色中明确撤消了执行权限,则只需授予这些包的 EXECUTE 权限。

创建或升级地理数据库后,您可以限制这些包的权限,方法是:将这些执行权限从公共角色中撤消,然后为登录地理数据库的每个单独的用户(包括地理数据库管理员)授予这些执行权限。

警告警告:

您不能为角色授予执行权限,然后为所有用户授予角色,原因在于执行 Oracle 包时,通过用户角色授予的权限不适用。

在向各用户授予执行权限后,重新编译 sde 方案:

EXEC dbms_utility.compile_schema( 'SDE' );

最低权限

除了前一部分中所述的权限之外,列出的每种类型的用户需要以下权限:

用户类型

数据库权限

数据集权限

备注

数据查看人员

  • CREATE SESSION

对数据库对象的 SELECT 权限

如果您的数据库配置为使用共享的 ArcSDE 日志文件表(默认设置),则可能还需要其他权限。有关详细信息,请参阅有关 Oracle 的 ArcSDE 日志文件表配置选项

数据编辑人员

  • CREATE SESSION

对其他用户数据集的 SELECT、INSERT、UPDATE 和 DELETE 权限

如果您的地理数据库使用共享的 ArcSDE 日志文件表(默认设置),则可能还需要其他权限。有关详细信息,请参阅有关 Oracle 的 ArcSDE 日志文件表配置选项

如果用户要通过版本化视图编辑版本化数据,还必须在版本化视图中为其授予 SELECT、INSERT、UPDATE 和 DELETE 权限。如果使用 ArcGIS 中的权限 对话框为版本化要素类授予 SELECT、INSERT、UPDATE 和 DELETE 权限,则这些权限会自动授予到与其相关联的版本化视图中。

数据创建人员

  • CREATE SESSION
  • CREATE SEQUENCE
  • CREATE TRIGGER
  • CREATE VIEW
  • CREATE TABLE

地理数据库管理员

  • CREATE SESSION
  • CREATE SEQUENCE
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE PROCEDURE
Oracle 中的最低权限
注注:

从 Oracle 10g 版本 2 开始,为提高安全性,对 ORACLE_HOME 访问的限制更加严格。在未对地理数据库管理员授予高级权限的条件下,为了允许地理数据库管理员访问 ORACLE_HOME 中的文件,请在操作系统的 SDE 帐户下安装兼容的 Oracle 客户端。在 UNIX/Linux 中,可在 SDE 用户的 shell 内设置客户端 ORACLE_HOME。有关详细信息,请参阅知识库文章 34824

创建或升级地理数据库所需要的权限

下表列出的是为使地理数据库管理员能够创建或升级 ArcSDE 地理数据库而必须为其授予的权限。还列出了之所以需要这些权限或权限组的原因。这些权限有些可在创建或升级完成后撤消,如“目的”字段以及上表中所示的最低地理数据库管理员权限。

第一张表列出了 SDE 用户在 SDE 用户方案中创建地理数据库所需的权限。这称为 SDE 主地理数据库。

第二个表列出了 SDE 用户升级 SDE 主地理数据库所需的权限。

第三个表列出了 SDE 之外用户在其方案中创建地理数据库所需的权限。这些地理数据库称作用户方案地理数据库。

第四张表列出了非 SDE 用户升级用户方案地理数据库所需的权限。

权限按创建和升级地理数据库过程中各权限的用途进行分组。

权限

权限用途

  • CREATE SESSION

连接到 Oracle。

  • CREATE TABLE
  • CREATE TRIGGER

创建地理数据库资料档案库。

  • CREATE SEQUENCE

创建序列以生成 ID。创建地理数据库后可撤消此权限。

  • CREATE PROCEDURE

创建用于维护地理数据库系统表内容的包。

  • EXECUTE ON DBMS_CRYPTO

允许创建 ST_Geometry 类型的地图成员函数,可在执行空间合并或相交时随时调用该函数。

  • CREATE INDEX TYPE
  • 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 SDE 用户权限

权限

权限用途

  • CREATE SESSION

连接到 Oracle。

  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE VIEW

升级地理数据库资料档案库。升级后可撤消 CREATE VIEW 权限。

  • CREATE PROCEDURE

升级用于维护地理数据库系统表内容的数据包。

  • CREATE SEQUENCE

升级序列以生成 ID。升级后可撤消此权限。

  • EXECUTE ON DBMS_CRYPTO

升级 ST_Geometry 类型的地图成员函数,可在执行空间合并或相交时随时调用该函数。

  • CREATE INDEXTYPE
  • CREATE LIBRARY
  • CREATE OPERATOR
  • CREATE PUBLIC SYNONYM
  • CREATE TYPE
  • DROP PUBLIC SYNONYM

升级 ST_Geometry 和 ST_Raster 用户定义的数据类型以及用于查询优化的类型。升级后可撤消这些权限。

  • ALTER ANY INDEX
  • CREATE ANY INDEX
  • CREATE ANY TRIGGER
  • CREATE ANY VIEW
  • DROP ANY INDEX
  • DROP ANY VIEW
  • SELECT ANY TABLE

升级地理数据库内容。

  • ADMINISTER DATABASE TRIGGER

通过 SQL 删除、更改或重命名包含 ST_Geometry 的表时,创建修改 ST_GEOMETRY_COLUMNS 和 ST_GEOMETRY_INDEX 表所需的数据库事件触发器。升级后可撤消此权限。

用于升级 SDE 主地理数据库的 Oracle SDE 用户权限

权限

权限用途

  • CREATE SESSION

连接到 Oracle。

  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE VIEW

创建地理数据库资料档案库。

  • CREATE SEQUENCE

创建序列以生成 ID。创建地理数据库后可撤消此权限。

  • CREATE PROCEDURE

创建用于维护地理数据库系统表内容的包。

  • CREATE TYPE

创建用于查询优化的类型。

创建用户方案地理数据库的 Oracle 权限

权限

权限用途

  • CREATE SESSION

连接到 Oracle。

  • CREATE TABLE

升级地理数据库资料档案库。

  • CREATE SEQUENCE

升级序列以生成 ID。升级后可撤消此权限。

  • ALTER ANY INDEX
  • CREATE ANY INDEX
  • CREATE ANY TRIGGER
  • CREATE ANY VIEW
  • DROP ANY INDEX
  • DROP ANY VIEW
  • SELECT ANY TABLE
  • CREATE PROCEDURE
  • CREATE TYPE

升级地理数据库内容。

用于升级用户方案地理数据库的 Oracle 权限

常用的可选权限

很多组织机构选择使用其他 Oracle 功能来进一步增强其地理数据库的功能。下表列出了地理数据库管理员常用的多个可选权限及权限的用途。权限按其用途进行分组。

权限

权限用途

  • ALTER SESSION
  • PLUSTRACE

可启用 SQL 追踪、SQL*Plus AUTOTRACE 功能以及对会话特定的初始化参数进行修改以实现性能调整和故障排除;通过运行 ORACLE_HOME/sqlplus/admin/plustrce.sql 创建 PLUSTRACE 角色。

  • ADVISOR(仅限 Oracle 10g
  • ALTER ANY INDEX
  • ANALYZE ANY
  • SELECT ANY DICTIONARY
  • CREATE JOB(仅限 Oracle 10g

授予地理数据库管理员,以允许该用户监视 Oracle 并执行基本的维护任务。

这适用于地理数据库管理员不是 Oracle DBA 的组织机构。

  • CREATE DATABASE LINK
  • CREATE MATERIALIZED VIEW
  • CREATE VIEW

这适用于在企业中将地理数据库与其他非空间数据库集成的情况。

  • RESTRICTED SESSION

数据库联机但最终用户不可访问时,该权限可让地理数据库管理员执行维护。

  • UNLIMITED TABLESPACE

对地理数据库管理员授予此权限以进行安装和升级,确保数据库中的地理数据库管理员表空间内具有足够的存储空间能够完成安装或升级;如果已对空间管理设置了配额,则安装或升级地理数据库后可撤消此权限。有关使用存储配额的信息,请参阅 Oracle 中的内存调整

  • ALTER SYSTEM
  • SELECT_CATALOG_ROLE

SDE 用户必须拥有这些权限才能从地理数据库中移除连接。创建企业级地理数据库地理处理工具会将这些权限授予 SDE 用户。可在运行此工具后撤消 SDE 用户的这些权限,但撤消权限后 SDE 用户不能将用户从数据库断开。

此外,也可将 SDE 用户添加到 DBA 角色,以允许 SDE 用户从数据库断开用户。

Oracle 的可选权限

数据集权限应由数据集所有者使用 ArcGIS for Desktop 中提供的权限对话框或更改权限地理处理工具进行授予或撤消。有关说明,请参阅授予和撤消数据集的权限更改权限

相关主题

5/10/2014