您好,欢迎访问一九零五行业门户网

ArcSDE数据库架构设计

不知道题目该怎么起名字,害怕这个名字被大家误解,这个文档其实就是想给一些初学者在使用不同数据库,怎么组织sde库与用户数据库,怎么多个用户来操作同一个库,相互用户的权限如何来分配等等信息。 oracle数据库 如果是oracle数据库,在安装完arcsde软件,
不知道题目该怎么起名字,害怕这个名字被大家误解,这个文档其实就是想给一些初学者在使用不同数据库,怎么组织sde库与用户数据库,怎么多个用户来操作同一个库,相互用户的权限如何来分配等等信息。
oracle数据库如果是oracle数据库,在安装完arcsde软件,post完毕之后,在数据库里面有一个sde表空间和sde用户,那么对用户的数据来说该怎么存储呢?
方式一:扩大sde表空间的容量,直接将用户的数据导入到sde用户或者新建一个用户但是默认表空间还是sde表空间,反正数据都灌入到sde表空间里面。
缺点:将用户的数据和sde的相关结构表放在一块,显然层次不分明,用户也容易误操作sde的相关结构表。
方式二:也就是推荐的方式,如上图所示,用户可以创建存储自己数据的表空间,然后用户也可以创建属于该表空间的一个或者多个用户,该用户赋予connect和resource权限即可,当用户使用arccatalog进行用户连接时,用户的数据会存储在用户自己的表空间中,但是相关的信息(用户数据的表名称、表的列名称、数据投影等信息)会自动注册到sde表空间中,这些步骤不用用户来操作,通过arcgis产品的相关接口会在后台自动进行相关处理,对初学者来说,这个方式往往让他们比较想不通,总感觉我的数据应该在sde表空间里面才能进行相关的注册,放到其他表空间里面就会自动注册或者还需要进行额外操作,这一点就多虑了,用户可以根据上面的解释进行试验。
那么针对一个表空间的多个用户来说,权限问题一方面可以使用oracle的数据库方式,那里面有相关的权限,不过也可以使用arcgis的方式来赋予相关的权限。
该功能用户可以在arctoolbox工具或者其他地方都可以找到,如果是数据的拥有者也就是使用哪个用户创建或者导入的数据,可以赋予其他用户读(select)或者写(edit)的权限,使用这种方法也是可以进行权限的操作的。
sql server数据库对oracle数据库来说,大家使用的比较多,但是对sql server数据库来说,就有些问题需要注意了。可能习惯oracle数据库的用户在使用sql server数据库时对数据组织也喜欢走oracle的老路子,就是当用户安装完arcsde软件,post完毕后,系统会创建一个sde的数据库,和sde的用户,那么用户可以向创建一个新库,然后创建新库的用户,也用oracle的方式导入数据,数据在新库里面存储,数据信息在sde库里面注册,这样做是可以的,但是esri在arcgis9.3时就已经不推荐用户进行这样组织了,因为这样效率比较低,怎么个低法呢?不解释,用户知道就可以了。所以以上全部是废话。
看一下上面的图,对sql server数据库来说,如果用户是一个库的话,建议将用户数据和sde放在一块儿,也就是直接导入到sde库里面,如果用户是希望多个库分开存储,建议为每一个库都创建相关的sde schema,如下所示:
再进行创建库时,修改新的database name,然后针对每一个database name创建相应的arcsde服务,在进行数据连接时,连接哪个库,我们在database 填上相应的名称即可。
那么再说说sql server的用户,sql server数据库默认有一个sa用户,这是操作系统级别的用户,也有sde用户,这是第一次创建arcsde库创建的用户,sa用户的sde用户都是凌驾于所有库之上的,这两个用户可以连接所有sde的库,也就是ppt上图上所示。那么针对每一个库我们也可以创建针对这个库的用户。
下面说说怎么给sql server数据库创建多用户?
对 sql server创建用户来说,只需要安装向导来创建即可,但是我也接到用户的咨询,在创建完新用户之后,可以使用新用户进行连接,但是往新用户里面导入相关数据会出现如下的一个错误:
出现这个错误的原因是:在创建新用户的时候,我们不能使用sde或者dbo的架构,要在sde数据库下或者拥有sde schema的数据库下来创建该用户的架构,然后选择该架构即可。
如上图所示:我想在sde数据库中再创建一个除sde外的其他用户,比如aaa,那么我首先要创建一个aaa的架构。
然后创建的aaa用户所在架构修改为aaa的架构即可。
详细参考:http://blog.csdn.net/linghe301/archive/2011/02/14/6183962.aspx
下面说明一下sqlserver导入数据的命名方式:数据库名.用户名.图层名,如下所示:
中间的名称为sde,说明是sde用户导入的,中间的名称为dbo,说明是sa用户或者其他用户但是拥有sysadmin的权限,其他就是普通用户自己导入的。
-------------------------------------------------------------------------------------------------------
qq一群:              78773981
qq二群:            225989940
blog:               http://blog.csdn.net/linghe301
weibo:            http://www.weibo.com/linghe301
-------------------------------------------------------------------------------------------------------
其它类似信息

推荐信息