Oracle 中地理数据库的用户权限
必须根据用户需要在 Oracle 数据库中执行的操作来为用户授予特定权限。可以为角色授予一些权限,有些权限是必须直接授予用户的。
本主题中的第一部分列出了所有用户所需要的包权限。必须为公共角色授予这些权限,以便创建和升级地理数据库。但是,如果您想撤消公共角色的这些权限,可以在创建或升级完地理数据库后为所有单独的用户授予这些权限。
第二部分列出的是普通用户类型至少需具有的数据库权限:数据查看人员、数据编辑人员、数据创建人员和 ArcSDE 管理员。除了第一部分中列出的权限外,还需要这些权限。
第三部分列出的是 ArcSDE 管理员创建或升级地理数据库所需的权限。除了第一部分中列出的权限外,还需要这些权限。
最后一部分列出的是通常可选择分配给 ArcSDE for Oracle 用户的权限。
您可以使用 Oracle 的企业管理器管理用户的权限。也可以使用 SQL 语句来授予和撤消权限。
包权限
以下包需要执行权限:
- dbms_lob
- dbms_lock
- dbms_pipe
- dbms_utility
- dbms_sql
- utl_raw
要创建或升级地理数据库,您必须为公共角色授予这些包的执行权限。
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_lob、dbms_utility、dbms_sql 和 utl_raw 的执行权限。因此,如果已经从公共角色中明确撤消了执行权限,则只需授予这些包的执行权限。
创建或升级地理数据库后,您可以限制这些包的权限,方法是:将这些执行权限从公共角色中撤消,然后为登录地理数据库的每个单独的用户(包括 ArcSDE 管理员)授予这些执行权限。
您不能为角色授予执行权限,然后为所有用户授予角色,原因在于执行 Oracle 包时,通过用户角色授予的权限不适用。
最低权限
除了前一部分中所述的权限之外,列出的每种类型的用户需要以下权限。
用户类型 |
数据库权限 |
数据集权限 |
注 |
---|---|---|---|
数据查看者 |
|
对数据库对象的 SELECT 权限 |
如果您的数据库配置为使用共享的 ArcSDE 日志文件(默认设置),则可能还需要其他权限。有关详细信息,请参阅有关 Oracle 的日志文件表配置选项。 |
数据编辑者 |
|
对其他用户数据集的 SELECT、INSERT、UPDATE 和 DELETE 权限 |
如果您的数据库配置为使用共享的 ArcSDE 日志文件(默认设置),则可能还需要其他权限。有关详细信息,请参阅有关 Oracle 的日志文件表配置选项。 |
数据创建者 |
|
仅当用户创建数据库视图、空间视图或多版本化视图时才需要 CREATE VIEW 权限。 | |
ArcSDE 管理员 |
|
仅当使用 Oracle Spatial 的自动注册时才需要 SELECT ANY TABLE 权限。如果未使用自动注册,则不需要 SELECT ANY TABLE 权限。 |
从 Oracle 10g 版本 2 开始,为提高安全性,对 ORACLE_HOME 访问的限制更加严格。在未对 ArcSDE 管理员授予高级权限的条件下,为了允许 ArcSDE 管理员访问 ORACLE_HOME 中的文件,请在操作系统的 SDE 帐户下安装兼容的 Oracle 客户端。在 UNIX/Linux 中,可在 SDE 用户的 shell 内设置客户端 ORACLE_HOME。有关详细信息,请参阅知识库文章 34824。
创建或升级地理数据库所需要的权限
下表列出的是为使 ArcSDE 管理员能够创建或升级 ArcSDE 地理数据库而必须为其授予的权限。还列出了之所以需要这些权限或权限组的原因。这些权限有些可在创建或升级完成后撤消,如“用途”字段以及上表中所示的最低 ArcSDE 管理员权限所注。
如果使用的地理数据库是在 Oracle 的用户方案中创建的,则创建或升级地理数据库时,方案所有者(地理数据库所属的用户)需具有同等权限。
权限按创建和升级地理数据库过程中各权限的用途进行分组。
权限 |
目的 |
---|---|
|
连接到 Oracle。 |
|
创建和升级 ArcSDE 资料档案库。 |
|
创建地理数据库后创建序列。 |
|
创建并升级数据包以维护 ArcSDE 资料档案库的内容。 |
|
创建 ST_Geometry 和 ST_Raster 用户定义的数据类型。CREATE OPERATOR 和 CREATE INDEXTYPE 也是升级 ArcSDE 所需的权限。这些权限可在安装或升级后撤消。要创建 GDB_Items_vw 和 GDB_ItemRelationships_vw 系统视图需要使用 CREATE VIEW。 |
|
升级地理数据库内容。 |
|
通过 SQL 删除、更改或重命名包含 ST_Geometry 的表时,创建修改 ST_GEOMETRY_COLUMNS 和 ST_GEOMETRY_INDEX 表所需的数据库事件触发器。此权限可在安装或升级后撤消。 |
SDEHOME > 工具 > oracle中有一个随 ArcSDE for Oracle 一起安装的脚本 (createsdeoracle.sql),该脚本可以更改并且可用于创建 sde 表空间和用户,以及为 sde 用户授予创建或升级地理数据库的权限。
常用的可选权限
很多组织机构选择使用其他 Oracle 功能来进一步增强其地理数据库的功能。下表列出了 ArcSDE 管理员常用的多个可选权限及权限的用途。权限按其用途进行分组。
权限 |
目的 |
---|---|
|
可启用 SQL 追踪、SQL*Plus AUTOTRACE 功能以及对会话特定的初始化参数进行修改以实现性能调整和故障排除;通过运行 ORACLE_HOME/sqlplus/admin/plustrce.sql 创建 PLUSTRACE 角色。 |
|
授予 ArcSDE 管理用户,以允许该用户监视 Oracle 并执行基本的维护任务。 适用于 ArcSDE 管理员不是 Oracle DBA 的组织机构 |
|
适用于在企业中将地理数据库与其他非空间数据库集成的情况 |
|
数据库联机但最终用户不可访问时使 ArcSDE 管理员用户可进行维护 |
|
对 ArcSDE 管理员授予此权限以进行安装和升级,确保数据库中的 ArcSDE 管理员表空间内具有足够的存储空间能够完成安装或升级;如果已对空间管理设置了配额,则安装或升级 ArcSDE 后可撤消此权限。 注意: 授予 UNLIMITED TABLESPACE 系统权限之前必须指定配额;否则,事后将无法通过 Oracle 企业管理器控制台更改配额。 |
|
sde 用户必须具有这些权限才能通过 sdemon 命令取消与地理数据库的直连。 此外,也可将 sde 用户添加到 DBA 角色中来取消直连。 |
数据集权限应由数据集所有者使用 ArcGIS Desktop 中提供的“更改权限”地理处理工具进行授予或撤消。有关说明,请参阅授予和撤消数据集的权限与更改权限。