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 );

 

posted @ 2021-09-17 15:30  Coderlhx  阅读(430)  评论(0编辑  收藏  举报