-3

请帮助我在我的 asp 应用程序中收到以下错误,

用于 SQL Server 错误“80004005”的 Microsoft OLE DB 提供程序

无法打开登录请求的数据库“mydb”。登录失败。

我很确定我的用户拥有数据库的权限并且它的凭据是正确的。

我处于死胡同,不知道还能尝试什么......

4

2 回答 2

1

这听起来像是登录的默认数据库,或连接字符串中明确提到的数据库,已脱机或不再存在。您是否使用其他登录名(例如 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';
于 2012-07-10T12:48:55.303 回答
0

要解决此问题,请确保满足以下条件:

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 下运行,该项目的密码同步选项将被关闭。

https://support.microsoft.com/en-in/kb/306586

于 2016-10-19T06:17:18.057 回答