`

ArcSDE空间数据库中SDE用户使用探讨

阅读更多

ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据库中SDE用户的使用方法。

 

ArcSDE如何工作

 

ArcSDE属于中间件技术,其本身并不能够存储空间数据,它的作用可以理解为数据库的“空间扩展”。在基于Oracle的ArcSDE空间数据库中,ArcSDE保存了一系列Oracle对象,用于管理空间信息。这些对象统称为资料档案库(Repository),包含空间数据字典和ArcSDE软件程序包。ArcSDE需要SDE用户管理空间资料档案库,这类似于Oracle中需要SYS用户管理数据字典。Oracle的数据字典存储在SYSTEM表空间中;相应地,在存储ArcSDE空间资料档案库的时候,也需要使用特定的表空间。通常,为了方便起见,默认使用名称也是SDE的表空间管理空间数据字典。

 

ArcSDE的工作机制中,SDE用户负责ArcSDE与Oracle的交互,通过维护SDE模式下的空间数据字典以及运行其模式中的程序包,来保证空间数据库的读/写一致性。在ArcSDE服务启动的过程中,SDE用户通过Oracle验证,并且创建和维护一个Oracle会话连接,连接的程序便是giomgr,即ArcSDE服务器管理进程,该进程一直存在,负责监听用户连接请求,分配相应的gsrvr管理进程(见注1),进行空间数据字典的维护。

 

ArcSDE的安全性

 

ArcSDE的安全机制完全依赖于Oracle,空间数据库用户(包括SDE),需要Oracle的用户密码才能够访问空间数据,ArcSDE本身并不保存任何认证信息。

 

在Oracle中,SDE用户的最小系统权限设置要求是:

 

Create procedure / Create table / Create sequence / Create trigger / Create session

 

由此可见,SDE亦属于Oracle数据库中的普通权限用户。

 

对于Oracle来说,虽然SDE属于非DBA用户,但是在ArcSDE架构中,SDE的地位比较特殊,是ArcSDE管理员。只有SDE可以完成一些特定的工作:比如启动/停止ArcSDE服务;终止某些用户连接;压缩多版本数据库等。SDE用户虽然不是一个真正的Oracle DBA用户,但是在ArcSDE工作过程中,软件会进行一些特定的对象权限操作。因此,应该将SDE用户等同于Oracle DBA用户处理,就像SYS或者SYSTEM一样,必须严格保护其密码。

 

在ArcSDE空间数据库中,从权限管理级别上,可以把用户分成两大类:

 

1、 空间数据库管理员,只有并且只能是SDE

 

2、 空间数据库一般用户,包括创建、浏览空间数据的除SDE外的其它oracle用户 使用SDE用户,强烈推荐遵循两个原则:

  • SDE用户不用于加载空间数据
  • SDE存储资料档案库的表空间不用于存放空间数据


SDE用户的特殊对象权限

 

SDE用户作为Oracle数据库的一般用户,可以创建自己的表或者存储过程;作为ArcSDE空间数据库管理员,在对象权限设置中,ArcSDE会自动授予SDE一些对象权限。SDE用户需要这些对象权限,以保证ArcSDE Geodatabase的完整性。空间数据库的一般用户在创建新的Geodatabase对象的时候,ArcSDE将这些新建对象的权限授予SDE用户。比如ACTC用户创建一个名称为Country的Geodatabase的要素类,此时数据库中同时生成Country(即B表,Business Table)的相应支撑表,即F表(Feature Table)和S表(Spatial Index Table)。这时候,SDE用户将自动获取得到Country、F表和S表这几个表的Select权限。当用户将Country注册为版本,此时ACTC模式下生成记录编辑信息的A表(Additions Table)和D表(Deletions Table)。这时候,SDE用户获得该A表和D表的Select / Insert / Update / Delete权限。在这些对象权限授予过程中,ACTC用户并未获取任何通知信息。

 

在ArcGIS Desktop的空间数据库连接中,并没有体现出来SDE用户的这些对象权限,如果使用SDE用户进行空间数据库连接,只能够观察到上例中的Country表,其它的支撑表都被过滤掉了。如果需要完整查看SDE用户被授予的对象权限,可以通过Oracle的USER_TAB_PRIVS_RECD视图获取。

 

SDE用户完成哪些特定工作

 

在空间数据库中,作为管理员的SDE完成一般用户不能完成的操作,以下举例说明:

 

1、 启动/停止ArcSDE服务

只有SDE能够与Oracle完成交互,启动或停止ArcSDE的服务。操作为:
sdemon –o start / shutdown (启动/停止)
这时候需要提交SDE用户密码。

 

2、 终止某个空间用户连接

 

在空间数据库连接中,有时候出连接进程挂起或者非法连接的时候,可以使用SDE终止其连接。操作为:
首先,从连接列表中获取该连接的信息
sdemon –o info –I users
在获取到需要终止的连接ID后,使用kill命令
sdemon –o kill –t < 连接 ID>
<连接ID> 完成此项操作需要提交SDE用户密码。

 

3、 压缩多版本数据库(Multi-versioned Geodatabase)

 

在ArcSDE Geodatabase中,随着数据编辑工作的进行,SDE空间资料档案库中相应元数据表、以及用户模式中的A表和D表的记录逐渐增加,会影响空间数据的访问效率,因此经常需要进行数据库版本的压缩工作。在确定数据库不存在任何锁定后,便可以进行压缩工作,操作为:

 

sdeversion –o compress –u sde

 

完成此项操作需要提交SDE用户密码。

 

作为ArcSDE管理员,SDE还要完成其它一些工作。比如,在控制空间数据的数据段、索引段存储的时候,SDE用户可以使用sdedbtune命令来提高数据库效率。

 

 

注1:这是传统的ArcSDE应用服务器连接(Application-server connection)的工作方式,在这种方式中,ArcSDE服务器进程(giomgr)分配名为gsrvr的进程来全面负责客户机与服务器的元数据通信。ArcSDE 8.1版本之后,出现新的连接方式,即直接连接方式(Direction-connection),在这种连接方式中,gsrvr进程功能嵌入到客户机连接应用程序中,如ArcCatalog或其它ESRI软件产品。此种方式下,Gsrvr的功能由客户端连接应用程序完成。

测试环境:ArcSDE 9.0,Oracle 9.2.0.4.0,Windows NT

 

分享到:
评论

相关推荐

    ArcSDE快速入门教程.pdf

    - **适合于ArcSDE和一个多用户空间数据库一起使用的ARCGIS软件** - ArcGIS Desktop(ArcInfo, ArcEditor, ArcView)与ArcSDE结合使用时,能够提供一个全面的企业级GIS解决方案。 - **ArcGIS桌面型和ArcSDE的结合...

    基于Oracle的ArcSDE空间数据库设计报告

    本报告主要探讨的是基于Oracle的ArcSDE空间数据库设计,这是一种将空间数据和非空间数据集成到大型数据库管理系统中的技术。Oracle 10.2作为基础数据库,ArcSDE作为中间件,使得ArcGIS Desktop能够与Oracle进行交互...

    C#+ArcEngine连接ArcSDE数据库参数设置

    例如,在本例中使用的“sde.default”表示连接到默认版本的数据。 ### 三、C#代码实现连接ArcSDE数据库 接下来,我们来看一下如何在C#中编写代码来实现上述连接参数的设置。 #### 3.1 引入必要的命名空间 首先,...

    基于ArcSDE Oracle模式的海量空间数据库建设.pdf

    SDE用户在ArcSDE架构中扮演管理员角色,可以执行特定任务如启动/停止服务、终止用户连接和数据库压缩等。值得注意的是,尽管SDE用户具有DBA权限,但其认证信息并不存储在ArcSDE中,增强了系统的安全性。 总结来说,...

    ArcGis中SDE连接数据库

    在开发环境中添加ArcGIS引用库,这样就可以在代码中使用ArcGIS对象。 2. **建立连接字符串**:连接字符串包含了数据库服务器信息、实例名、数据库名、用户名和密码。例如:"Server=myServerAddress;Database=...

    Orcale sde技术框架介绍

    本文旨在深入探讨Oracle SDE的工作原理、安全机制及用户管理策略,为学习和应用空间数据库提供全面的知识体系。 #### Oracle SDE技术框架概览 Oracle SDE不仅是一种空间数据存储解决方案,更是一种空间数据管理与...

    ArcSDE数据库架构(Oracle和SQLServer).pdf

    ArcSDE数据库架构是地理信息系统(GIS)中用于管理和分发地理数据的关键组件,它允许多用户共享和编辑空间数据。本文将深入讨论ArcSDE在Oracle和SQL Server两种数据库环境下的实现方式,以及用户数据的组织和权限管理...

    SDE空间数据的检测

    ### SDE空间数据的检测——基于Oracle触发器的ArcSDE数据库要素级监测 #### 摘要 本文探讨了一种新型的监测方法,旨在解决ArcSDE数据库中GeoDatabase模型无法有效管理地理要素时间维度的问题。通过在底层Oracle...

    基于ArcSDE和SQL Server2000的洪涝灾害救助决策支持系统空间数据库设计研究.pdf

    ArcSDE(ArcGIS Spatial Database Engine)是ESRI公司推出的空间数据引擎产品,它是用于访问存储在关系数据库管理系统(RDBMS)中的海量多用户地理数据库的服务器软件。ArcSDE作为ArcGIS的一个集成部分,是企业级GIS...

    geoserver-2.16.4-arcsde-plugin.zip

    jsqlparser-0.3.14.jar是一个Java SQL解析库,用于解析和处理SQL查询,这对于与ArcSDE数据库交互至关重要。commons-pool-1.5.4.jar是Apache Commons的一个子项目,提供对象池服务,优化资源的分配和使用。gt-arcsde...

    基于Oracle和ArcSDE的空间数据访问优化

    本文将深入探讨基于Oracle和ArcSDE的空间数据访问优化策略,以提升系统的响应速度和整体性能。 1. 引言 地理信息系统集成计算机图形和数据库,用于处理和存储空间信息,为用户提供直观的决策支持。在互联网环境中...

    ArcSDE连接数设置及其性能说明

    在地理信息系统(GIS)领域中,ArcSDE作为一款重要的空间数据库管理系统,被广泛应用于存储和管理空间数据。随着多用户并发操作的需求日益增加,ArcSDE连接数的设置及优化变得至关重要。本文将详细介绍ArcSDE连接数...

    arcsde实验

    在这个“arcsde实验”中,我们将探讨`arcsde`的基本操作,特别是与`SDE`(Spatial Database Engine,空间数据库引擎)相关的配置以及数据转换。 首先,理解`SDE`的重要性是至关重要的。`SDE`是一种中间件,它允许...

    ArcSDE for Oracle linux安装

    最后,修改`sde`用户的`sdeexe92/tools/oracle/createsdeoracle.sql`脚本,以适应你的数据库环境,包括对sys用户的授权和创建sde相关的表空间、用户及权限。 总的来说,安装ArcSDE for Oracle on Linux涉及到多个...

    Arc SDE 图解安装步骤

    在本教程中,我们将深入探讨Arc SDE与Oracle 10g和DB2的安装过程,主要关注9.2和9.3两个版本。 首先,让我们关注ArcSDE 9.2 for Oracle 10g的安装步骤: 1. **系统需求**:确保你的计算机满足ArcSDE 9.2及Oracle ...

    断开arcsde服务器的所有连接

    在探讨如何断开ArcSDE服务器的所有连接之前,我们首先需要了解ArcSDE的基本概念以及其在地理信息系统(GIS)中的角色。ArcSDE是由Esri开发的一种空间数据库引擎,用于存储、管理和分发地理空间数据。ArcSDE能够与...

    ArcSDE开发新的体会

    在将Shape文件导入ArcSDE数据库前,必须检查Shape文件的空间参考系统(Spatial Reference)是否与SDE数据库中的匹配。如果两者不一致,可能需要进行坐标系转换,确保数据的正确投影和位置。通常情况下,SDE中的...

    ArcGIS 10.2.2 配置32位PostgreSQL数据库安装sde所需的32位 Postgresql library(五个dll)

    在ArcGIS 10.2.2与32位PostgreSQL数据库的交互中,这个库帮助程序正确识别和处理不同地区的语言设置,使得全球用户都可以无障碍地使用系统。 “libpq.dll”是PostgreSQL客户端应用编程接口(API)的动态链接库。它...

Global site tag (gtag.js) - Google Analytics