Error: 连接数据库失败,未通过后台DBMS的用户名/密码验证

文章编号 : 33406
软件: ArcGIS - ArcEditor 9.2, 9.3, 9.3.1 ArcGIS - ArcInfo 9.2, 9.3, 9.3.1 ArcGIS - ArcView 9.2, 9.3, 9.3.1 ArcGIS Server 9.2, 9.3, 9.3.1 ArcIMS 9.2, 9.3, 9.3.1
操作系统: N/A
已邀请:

EsriSupport

赞同来自:

错误信息:
当应用程序使用直连来连接多个数据库的不同Oracle实例的时候,可能会遇到如下错误:连接数据库失败,未通过后台DBMS的用户名/密码验证。
原因:
当ArcGIS应用程序打开一个SDE数据库的连接时,通过连接属性来和打开的数据库(已存在的数据库连接)进行检查和对比,如果连接属性满足某个存在的连接,则会返回该数据库连接。 如果以下4个属性要素都匹配,那么该数据库工作空间将被返回:服务器名、实例名、数据库名、用户名。 在决定是否返回该工作空间的时候,是不会验证密码的。所以在使用直连的方式连接到两个不同的Oracle实例的时候,一旦密码不匹配,就会产生错误。例如下面的两组连接属性,虽然密码是唯一的,但却返回的是同一个数据库工作区间。 连接1 服务器:Alex 实例:sde:oracle10g 数据库:NULL 用户:sde 密码:sde@instance1 连接2 服务器:Alex 实例:sde:oracle10g 数据库:NULL 用户:sde 密码:sde@instance2 上述两个例子的直连属性设置都是正确的,且两个连接都是一样的,因为前面讲到的用于验证工作区间的4个属性都是一致的。

解决方法: 可以使用下面的任一方法:
直连的时候可以不需要服务器名,因此我们可以不设置这个属性。推荐使用oracle实例名或oracle SID,因为它们对每个连接来讲都是不同的;
在Service属性设置oracle实例名: Sde:oracle11g:/;LOCAL=instance1
上述连接字符串的例子可以在ArcGIS Desktop的上下文帮助里找到。如果想要查看这些信息,可以打开一个新的连接对话框,点击右上角的“?”按钮,点击服务对话框。


创建时间:2007-07-30
最近更新: 2010-06-24


原文链接
http://support.esrichina.com.cn/2007/0730/914.html

要回复问题请先登录注册