Error: 不能打开数据库-登录失败

文章编号 : 35688
软件: ArcGIS Server 9.3, 9.3.1
操作系统: N/A
已邀请:

EsriSupport

赞同来自:

错误信息:
在ArcGIS Server for Microsoft .NET Framework的Manager里,可以在不同的web服务器机器上创建一个新的web应用程序。接下来可以在Manager里为这个远程的web应用程序添加访问控制,指定特定的角色可以访问这个应用程序。当用户登录这个web应用程序时,浏览器会显示一条错误消息。 默认显示的是一个通用的错误,除非浏览器是在运行web应用程序的机器上打开的。后一种情况显示的错误消息: "Cannot open database "<database>" requested by the login. The login failed. Login failed for user '<user name>'."
其中的<user name>一般是Network Service或ASPNET。

原因:
如果ArcGIS Server配置安全机制时把用户保存在Microsoft SQL Server或自定义存储时会出现这种情况。原因就是在Manager里定义的存储参数在运行web应用程序的远程IIS web服务器上不可用。 具体地说,问题可能是由于运行SQL Server的机器名没有提供完整,或者访问SQL Server和自定义存储的账号权限不对。

解决方法: 可能需要下面的两个步骤中的一个或全部:
1)修正数据库的机器名或位置信息
2)确保运行应用程序的用户有正确的权限
下列步骤解决的是SQL Server的问题。使用自定义存储时问题是相似的,也需要执行类似的操作,比如配置存储的位置和权限。
1、错误的第一个原因可能是需要设置SQL Server的机器名,这样远程机器才能找到。步骤如下:
a) 登录到ArcGIS Server Manager
b) 点击“Security--Settings”,点击“Configure…”
c) 在配置向导中,第一个面板应该被设置成SQL Server,点击下一步
d) 在设置SQL Server的窗口,检查服务器的值。应该设置服务器名称,这样远程机器才能找到它。名称不能用”.”或”localhost”。必要的话,检查一下远程的web服务器能否通过机器名(或IP)访问到SQL Server。如果已经设置了SQL Server的机器名,跳到第2步。否则,修改名称,改成SQL Server服务器的机器名或IP。
e) 如果SQL Server名称已经被修改了,点击“Connect”,然后关闭向导保存并更新设置。
f) 进入Applications标签页,找到远程的web应用程序,点击Permissions按钮
g) 在打开的对话框中,点击保存(可以修改权限,但不是必须的)。这样可以重写web应用程序的配置,使用修改后的SQL Server名称。
h) 打开浏览器访问远程的web应用程序,然后登录。如果能登录成功,可以跳过下面的步骤。如果显示权限错误,接着按第2步操作。
2、SQL Server数据连接必须配置成允许web应用程序访问数据库。
下面的步骤是用SQL login连接数据库而不是Windows验证。按以下步骤操作修改web应用程序,使用SQL login连接数据库。
a) 打开SQL Server Management Studio连接到SQL Server实例。如果是SQL Server Express,如有需要,可以安装SQL Server Management Studio Express.
b) 如果是SQL Server Express,允许SQL login。在左边的树形导航栏中,右键点击服务器(<servername>\SQLEXPRESS),选择属性。在属性窗口中,点击“安全性”。在安全性面板,在服务器身份验证一栏勾选“SQL Server和Windows身份验证模式”,点击确定保存设置并关闭属性对话框。
c) 展开安全性文件夹,点击登录名文件夹,添加一个新的SQL登录名。右键点击登录名文件夹,选择”新建登录名…”。在打开的对话框中,输入登录名(比如AGSApplications)。选择SQL Server身份验证,输入密码和确认密码。
d) 在同一个对话框里,点击用户映射。在“映射到此登录名的用户:”下面,勾选包含ArcGIS Server安全用户的数据库。确保数据库是高亮状态,然后,在“数据库角色成员身份: <database>”中,勾选db_owner角色。点击确定创建登录名和角色。关闭SQL Server Management Studio。
e) 登录ArcGIS Server Manager,进入Security > Settings > Configure…
f) 在安全向导里,点击SQL Server,选择下一步
g) 在设置SQL Server的面板里,输入SQL Server名称,使用机器名而不是“.”或“localhost”。点击Connect连接到SQL Server。
h) 在对话框中,反选“Use Trusted Connection”选项。输入刚才创建的SQL登录名和密码。在Use existing database下拉菜单中选择数据库。点击下一步并结束向导。
i) 进入Applications页,选中web应用程序,点击Permissions按钮
j) 在权限对话框里,点击保存(可以修改权限,但不是必须的)。这样可以重写web应用程序的配置,使用SQL Server登录名。
k) 打开浏览器访问远程的web应用程序并登录。如果还是有权限错误,重新检查一下SQL登录名和Manager的配置。


创建时间:2008-10-22
最近更新: 2010-06-17


原文链接
http://support.esrichina.com.cn/2008/1022/781.html

要回复问题请先登录注册