我正在开发一个连接到SQL 2000数据库的Web应用程序。一切都在我的数据库(实际上是SQL 2008)上完美运行,但是当我尝试将其迁移到另一台服务器(实际上运行SQL 2000)时,我遇到了一些奇怪的错误。
我的网页应用使用的用户名登录失败,因此我执行了正常的故障排除步骤...
我将密码重置为应该的密码,确保用户已映射到它尝试连接的数据库。我使用用户名和密码通过企业管理器连接到数据库,并能够运行查询。我重置了SQL服务器。
除了我的应用程序中可能存在密码出于某种原因进行更改之外,我的想法很新鲜。反正有没有看到SQL服务器看到的密码?我只是想缩小我的搜索范围。
或者是否有人就我如何解决这个问题提出任何其他建议?
编辑:此外,网络应用程序可以与数据库通信,它命中数据库以获取登录凭据,它可以登录没有任何问题。当我尝试从数据库中获取更多信息时,错误会在应用程序中出现,例如报表或导出位置的参数。
提前致谢!
答案 0 :(得分:1)
您的SQL服务器可能未设置为允许远程连接吗?
编辑:或您的防火墙没有打开正确的端口?
<强> EDIT2:强>
如果您的Web脚本与SQL服务器位于同一服务器上,我唯一可以想到的是您指定了一个不正确的密码,如果您按名称引用了旧服务器(即使它是localhost)而你还没有更新它。如果Web脚本位于不同的服务器上,请检查防火墙端口并确保将sql server设置为允许远程连接。
<强> EDIT3:强>
Appologies,我在发布最后一次编辑(EDIT2)之前没有看到你的更新。托马斯是对的,放手一搏。
答案 1 :(得分:1)
首先,问题不在于用户登录失败。根据您的描述,登录成功。但是,您表示您在尝试访问某些对象时遇到异常。这听起来像是与登录关联的数据库用户及其尝试访问的对象的授权/权限问题。您是否尝试使用Enterprise Manager连接到数据库以及站点使用的相同凭据并执行与Web应用程序相同的查询?
答案 2 :(得分:0)
不确定您是如何进行迁移的,但您可能希望确保您的sql用户没有成为孤儿:
从 - http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm
首先,确保这是问题所在。这将列出孤立用户:
EXEC sp_change_users_login 'Report'
如果您已拥有此用户的登录ID和密码,请执行以下操作进行修复:
EXEC sp_change_users_login 'Auto_Fix', 'user'
如果要为此用户创建新的登录ID和密码,请执行以下操作进行修复:
EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
答案 3 :(得分:0)
我发现了问题!
实际上,我在应用程序中遇到了一些挥之不去的疑问。我开始以不同的方式填充一些向下的内容并且查询从未被删除,只要我把那些错误停止弹出就出现了。
这仍然很奇怪,这不会影响我的机器上的应用程序,但是在这台其他机器上会引起各种各样的事情。
感谢大家的帮助和建议,这确实有助于缩小问题范围。托马斯得到了接受的答案,因为他的建议指出了我正确的方向。