无法打开登录请求的数据库'dbname'。登录失败

时间:2011-09-15 15:19:00

标签: asp.net sql sql-server asp-classic

首先,我知道有很多类似的主题,但似乎都没有解决我的问题。

我继承了一个项目,其中前端是在ASP.NET中构建的,CMS是在经典ASP中构建的。我正在设置一个本地开发环境,我从实时服务器复制数据库,并配置网站连接到我的新本地数据库。

ASP.NET部分与连接字符串Data Source=.\\SQLEXPRESS; Database=DBNAME; Trusted_Connection=True;连接,但我不得不搞乱应用程序池和权限。

我遇到了将网站的经典ASP部分连接到SQL数据库的问题。我收到的错误是:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database "DBNAME" requested by the login. The login failed.

/cms/connections/Conn.asp, line 18

该文件中的代码是:

12. Dim Conn_STRING, URL, mailHost
13. Conn_STRING = "Driver={SQL Server}; Server=.\SQLEXPRESS; Database=DBNAME; Trusted_Connection=True;"

15. Dim conn
16. set conn = Server.CreateObject("ADODB.Connection")
17. conn.ConnectionString = Conn_STRING
18. conn.Open

我知道这是一个许可问题或某种形式,但我无法深究它。我会感激任何帮助:)

2 个答案:

答案 0 :(得分:1)

嗯,嗯,asp.net部分正在使用SQLExpress,通过附件连接。第一个示例中的DBNAME将引用实际asp.net项目中的db文件名。自从我上次使用经典ASP以来已经有很长一段时间了,但是如果支持这一点我就会感到震惊。您需要将db文件附加到实际的sql server并以这种方式使用它。

server=mycomputername\sqlexpress; database=DBNAME; user id=username; password=password

答案 1 :(得分:0)

您需要在sql express mngmt studio中打开数据库 http://www.microsoft.com/download/en/details.aspx?id=7593 进入该用户的安全设置并将默认数据库设置为“dbname”(当然,您的真实dbname是什么)

确保您的应用池设置为在具有该数据库权限的用户下运行。可能更容易启用混合模式身份验证并创建一个sql用户来连接到数据库,而不是在应用程序池上搞乱Windows身份验证。 你当然需要更改你的连接字符串然后支持sql身份验证,如果你去那条路线。 http://msdn.microsoft.com/en-us/library/ms143705%28v=sql.90%29.aspx