2

哦,是的,著名的错误:

无法打开登录请求的数据库“MYDBNAME”。登录失败。用户“USERNAME”登录失败。

先说明一下我的情况:

我有一个数据库服务器,它有一个 SA 帐户和我的用户帐户。用户对我的数据库 (dbowner) 有正确的映射。

我可以在 SQL 服务器本身(使用 localhost)和我的前端服务器上使用 SQL Management Studio 2008 R2 使用该用户打开数据库。

但是,当我运行我的应用程序时,出现登录失败错误。

奇怪的是我的前端服务器上有一个测试应用程序和一个生产应用程序。测试应用在同一个数据库服务器上有测试数据库,这里不存在登录问题。两者之间的唯一区别是前缀从“TEST”到“PROD”不同。测试应用程序有效,但生产却没有。用户映射似乎应该适用于两者。

有任何想法吗?

编辑:

我们的连接字符串:

<add key="umbracoDbDSN" value="Server=Websqlsrv01;Database=PROD_Databasename;User ID=umbraco_user;Password=password;Trusted_Connection=False" />
4

3 回答 3

1

sql server 有二分法登录/用户

它们是 2 个不同的实体:

http://www.akadia.com/services/sqlsrv_logins_and_users.html

也许您的 sql 登录名与数据库 PROD_Databasename 的用户无关,而仅与 TEST_Databasename 的用户相关联

另一个原因可能是用户默认数据库或最终不同的数据库模式

您可以轻松检查其中一个是否是问题,只需为 PROD_Databasename 创建一个新用户并在连接字符串中使用它。

另一种方法是执行

exec sp_helpuser

在两个数据库(PROD 和 TEST)中,查看是否列出了用户名“umbraco_user”。

无论如何,对 2 个不同的用户使用相同的登录名并不是一个好习惯:

https://dba.stackexchange.com/questions/16374/is-there-any-benefit-to-having-one-sql-server-login-for-multiple-users

于 2012-10-23T13:54:51.430 回答
1

servername\instancename如果您设置的不是默认实例,有时您需要在连接字符串中使用。使用链接查找您的实例名称。试试看!

于 2012-10-23T15:25:31.093 回答
0

right click on you application and run as admin. This should work!

于 2012-10-23T15:21:02.887 回答