当我通过 VS 2008 运行 Web 应用程序时,该应用程序能够登录到 Sql 服务器并检查用户输入的凭据(用户名和密码),但是当我通过 IIS 7 浏览到该应用程序并尝试回发用户名和密码时,应用程序报告异常:
System.Data.SqlClient.SqlException:用户“NT AUTHORITY\NETWORK SERVICE”登录失败
- 在 IIS 7 中,每个进程都运行在网络服务帐户...那么我需要为该帐户分配什么权限才能使应用程序能够“联系”Sql 服务器?
thanx
EDIT:
Hello,
它现在可以工作了,尽管我不明白为什么机器帐户需要这些权限。我知道机器帐户需要一些权限才能与特定程序(Sql 服务器)“对话”,但为什么需要它访问数据库及其表的权限?这不是由连接字符串中指定的帐户决定的吗
<add name="MyConnection" connectionString="data source=localhost; integrated security=sspi; initial catalog=aspnetdb;" />
拥有对数据库及其表的适当访问权限?
您实际上需要在 SQL Server 中为网络服务帐户创建一个帐户。然后,您将授予它对数据库的访问权限,您授予该帐户的具体权限取决于您的数据库需要执行的任务的性质。
您可以通过“安全”部分在 SSMS 中完成这一切,右键单击“登录”并选择添加。您将添加一个 Windows 帐户,然后可以查找并验证名称“NETWORK SERVICE”。然后切换到“用户映射”部分并授予查看数据库的权限。正如我所说的权限由您决定,或者您可以为其分配 dbowner 权限以实现完全控制。
这样做之后你就会没事的。我确实警告不要授予应用程序超过所需的权限!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)