我的应用程序运行正常,当我针对我的sql express进行调试时。 现在我已经在另一台机器上使用win2008 Web服务器在IIS上部署并更改了数据库连接字符串。
我希望应用程序始终使用相同的用户连接到数据库,而不是使用已连接用户的身份。
我得到的错误是
Error: Cannot open database "XXXXXX" requested by the login. The login failed. Login failed for user 'NT AUTHORITY\NETWORK SERVICE'
我怎样才能实现这一目标?
答案 0 :(得分:2)
在不知道当前连接字符串是什么的情况下,请查看此站点以获取对各种连接字符串设置的一些指导:http://www.connectionstrings.com/sql-server-2008。它就像在数据库中设置一个sql帐户一样简单,然后在连接字符串中使用这个用户名/密码,如下所示:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
答案 1 :(得分:0)
如果您可以使用SQL身份验证,则可以将用户名和密码指定为连接字符串的一部分。您甚至可以在Web.Config文件中加密此信息,这样您就不必担心人们会查看它。
如果您无法使用SQL身份验证(大多数政府机构安全设置要求禁用此功能),您可以使用用于运行Web应用程序的应用程序池标识的凭据。看起来这就是您正在发生的事情,并且您正在使用默认的网络服务凭证。如果没有使用凭据,那么如果使用Sql Profiler,则会导致用户'或匿名用户登录失败。
尝试将应用程序池标识帐户更改为有权访问您数据库的真实用户。