C/C++教程

catalog连接数据库与sde权限问题

本文主要是介绍catalog连接数据库与sde权限问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、在catalog中sde连接上空间数据库后,能看到很多其他用户的数据

问题在于建立SDE用户的时候赋予了DBA角色和GRANT SELECT ANY TABLE TO "SDE" WITH ADMIN OPTION;,如果把这两项权限撤销,则不会出现以上的问题.

revoke SELECT ANY TABLE from sde;

revoke dba from sde;

查看SDE用户的权限:
select privilege from dba_sys_privs where grantee='SDE' 
union 
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='SDE' ); 

ESRI的工程师安装以后,只有如下15个权限:

1 ADMINISTER DATABASE TRIGGER
2 CREATE CLUSTER
3 CREATE INDEXTYPE
4 CREATE LIBRARY
5 CREATE OPERATOR
6 CREATE PROCEDURE
7 CREATE PUBLIC SYNONYM
8 CREATE SEQUENCE
9 CREATE SESSION
10 CREATE TABLE
11 CREATE TRIGGER
12 CREATE TYPE
13 CREATE VIEW
14 DROP PUBLIC SYNONYM
15 UNLIMITED TABLESPACE

而一般我们自己安装的时候,则权限多了不少。执行一下revoke SELECT ANY TABLE from sde就OK了。

2、修改SDE权限造成无法在ArcMap中绘制图形的解决办法

默认情况下,SDE管理用户的权限是非常大的,所以经常我们会修改SDE用户权限,但因此也会造成一些图形绘制问题,在些进行介绍。

出错类型:

SDE.cq: 基础 DBMS 错误 [ORA-29900: 运算符连接不存在
ORA-06540: PL/SQL: 编译错误
ORA-06553: PLS-907: 无法加载库单元 SDE.ST_DOMAIN_OPERATORS (由 SDE.ST_ENVINTERSECTS 引用)

如下图所示:

 

 

产生原因:

SDE用户在升级数据库后,权限被注销,如:SELECT ANY TABLE权限被取消

Oracle能够自动标记某些软件包,功能,和触发器无效的基于数据库对象性质的自动验证,但ST_GEOMETRY是基于这些非法对象无法编译因而产生绘制错误。

解决办法:

这个问题可以通过重新编译数据包,解决触发,并标记为无效的功能。这可以通过以下SQL命令以SYSDBA用户,重复为每个用户模式数据库执行相同的步骤。

Exec dbms_utility.compile_schema( 'SDE', compile_all => FALSE );

 

这篇关于catalog连接数据库与sde权限问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!