SqlException:用户'NT AUTHORITY\NETWORK SERVICE登录失败

Sou*_*ceC 10 sql-server asp.net iis iis-7


当我通过VS 2008运行Web应用程序时,应用程序能够登录到Sql server并检查用户输入的凭据(用户名和密码),但是当我通过IIS 7浏览到此应用程序并尝试回发用户名和密码时,该应用程序报告一个例外:

System.Data.SqlClient.SqlException:用户'NT AUTHORITY\NETWORK SERVICE'登录失败

  • 使用IIS 7,每个进程都在网络服务帐户下运行...那么我需要为此应用程序分配哪些权限才能使应用程序"联系"Sql server?


感谢名单


编辑:

你好,


它现在有效,但我不明白为什么机器帐户需要这些权利.我理解机器帐户需要一些权限才能与特定程序(Sql server)"交谈",但为什么需要它访问数据库及其表的权限?是不是由连接字符串中指定的帐户决定

<add name="MyConnection" connectionString="data source=localhost; integrated security=sspi; initial catalog=aspnetdb;" />
Run Code Online (Sandbox Code Playgroud)

拥有对数据库及其表的适当访问权限?

Mit*_*ers 19

您需要在SQL Server中为网络服务帐户实际创建一个帐户.然后,您将授予它对数据库的访问权限,您授予该帐户的特定权限取决于数据库需要执行的任务的性质.

您可以通过"安全"部分在SSMS中完成所有操作,右键单击"登录"并选择添加.您将添加Windows帐户,然后可以查找并验证名称"NETWORK SERVICE".然后切换到"用户映射"部分并授予查看数据库的权限.我说的权限取决于您,或者您可以为其分配dbowner权限以进行完全控制.

这样做之后你会没事的.我小心不要给应用程序提供超出需要的权限!


Ric*_*dOD 9

我个人会在自定义服务帐户下运行Web应用程序.如果您确实想在网络服务下运行它,请参阅此MSDN文档.


Shr*_*ike 8

当您在连接字符串中指定"integrated security = sspi"时,我猜您期望模仿.但为此你应该:1.在IIS中启用集成身份验证2.在asp.net中启用Windows身份验证:3.在asp.net中打开imerposation:

还要考虑一下,如果您的Web服务器和SQL Server机器是不同的机器是不够的.然后,您的用户帐户将被要求信任委派.这是AD的特殊选择.

所以,你已经说过,最好为SQLSRV连接分开帐户.希望这可以帮助.