请帮助我在我的asp应用程序中收到以下错误,
Microsoft OLE DB Provider for SQL Server错误“80004005”
无法打开登录请求的数据库“mydb”。登录失败。
我非常确定我的用户拥有数据库的权限,并且其凭据是正确的。
我走到了尽头,不知道还有什么可以尝试......
答案 0 :(得分:1)
这听起来像登录的默认数据库,或连接字符串中明确提到的数据库,处于脱机状态或不再存在。您是否使用其他工具(例如,管理工作室),使用其他登录信息(例如sa或管理员)进行了检查,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';
答案 1 :(得分:0)
要解决此问题,请确保满足以下条件:
Windows NT帐户映射到SQL帐户。
连接字符串中的用户ID有效且不为空。
在SQL Server企业管理器中设置标准安全性。要实现SQL Server标准安全性,请执行以下步骤:
在SQL Enterprise Manager中,右键单击“服务器管理器”窗口中显示的SQL Server名称,然后单击“属性”。 (对于SQL Server 6.5版,单击“配置”)。
单击“安全选项”,然后单击“标准和Windows”。 (对于SQL Server 6.5版,单击“标准”)。
如果您在Microsoft Internet Information Server(IIS)4.0下运行,则该项目的“密码同步”选项处于关闭状态。