将用户添加到SQL Server 2008 - 权限被拒绝

时间:2009-02-10 23:28:47

标签: iis login windows-authentication sql-server-2008-express

我最近有some problems我认为可以通过在IIS中调试我的ASP.NET MVC应用程序而不是使用默认的ASP.NET Development Server来帮助它。但是,当我尝试这个时,应用程序无法访问数据库服务器(MS SQL Server 2008 Express) - 它在开发服务器上工作正常。

我得到的错误是

  

Cannot open database 'myDbName' requested by the login. The login failed. Login failed for user 'NT INSTANCE/NETWORK SERVICE'.

我认为之前有效,因为开发服务器通过我的用户帐户访问数据库,而不是通过IIS等网络服务。

我尝试将用户NETWORK SERVICE添加到数据库中,但事实证明我没有这样做的用户权限 - 我登录到服务器的Windows帐户并不重要是管理员,或者我在管理员上下文中运行该程序。我只是无法将另一个用户添加到数据库中。

如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您可以更改IIS运行的用户:它是您的网站运行的ApplicationPool属性中的设置。

我们一直这样做,因为它让我们更好地控制用户访问 - NT INSTANCE / NETWORK SERVICE帐户对我来说有点太神奇......

答案 1 :(得分:1)

NETWORK SERVICE是一个特殊帐户。如果数据库服务器位于IIS服务器的另一台计算机上,则需要添加帐户:

\ $作为数据库的用户。因此,如果您在SPRINGFIELD网络上使用名为LISA的IIS服务器,则需要向您的数据库授予对SPRINGFIELD \ LISA $的访问权限。请注意美元符号,表示您的用户是机器帐户而非实际人员。

如果您的数据库服务器和IIS服务器是同一个,请授予对“NT AUTHORITY \ NETWORK SERVICE”帐户的访问权限。这是帐户的全名。这应该有用。

答案 2 :(得分:0)

你在运行非英语操作系统吗?

由于某些原因,“NT Authority \ Network Service”的帐户名已使用其他语言进行了本地化 遗憾的是,许多程序的帐户名称都硬编码为英文名称,并且在外国版本的Windows上运行时无法找到网络服务。