请帮助我在我的 asp 应用程序中收到以下错误,
用于 SQL Server 错误“80004005”的 Microsoft OLE DB 提供程序
无法打开登录请求的数据库“mydb”。登录失败。
我很确定我的用户拥有数据库的权限并且它的凭据是正确的。
我处于死胡同,不知道还能尝试什么......
请帮助我在我的 asp 应用程序中收到以下错误,
用于 SQL Server 错误“80004005”的 Microsoft OLE DB 提供程序
无法打开登录请求的数据库“mydb”。登录失败。
我很确定我的用户拥有数据库的权限并且它的凭据是正确的。
我处于死胡同,不知道还能尝试什么......
这听起来像是登录的默认数据库,或连接字符串中明确提到的数据库,已脱机或不再存在。您是否使用其他登录名(例如 sa 或管理员)通过其他工具(例如 Management Studio)进行检查,该工具mydb
实际上是在线且可访问的?您是否使用以下方法检查了数据库的状态:
SELECT state_desc FROM sys.databases WHERE name = N'mydb';
? 您的数据库是否设置为自动关闭?此登录名是否曾经能够连接到此数据库?最后一次是什么时候?
很多东西要检查。
我们知道数据库在线,接下来让我们确保登录名在数据库中确实有一个用户。此查询是否返回结果?
SELECT * FROM sys.server_principals AS s
INNER JOIN mydb.sys.database_principals AS d
ON s.sid = d.sid
WHERE s.name = N'your_login_name';
要解决此问题,请确保满足以下条件:
Windows NT 帐户映射到 SQL 帐户。
连接字符串中的用户 ID 有效且不为空。
在 SQL Server 企业管理器中设置标准安全性。要实现 SQL Server 标准安全性,请按照下列步骤操作:
在 SQL 企业管理器中,右键单击出现在服务器管理器窗口中的 SQL Server 名称,然后单击属性。(对于 SQL Server 6.5 版,单击配置)。单击安全选项,然后单击标准和 Windows。(对于 SQL Server 6.5 版,单击标准)。如果您在 Microsoft Internet Information Server (IIS) 4.0 下运行,该项目的密码同步选项将被关闭。