为IIS APPPOOL创建SQL Server登录 - IIS和SQL Server在不同的机器上

17
我已经仔细搜索了以下内容 - 提前道歉,如果我漏掉了一个明显的答案。我遵循了下面链接中的建议,但解决方案不起作用。该解决方案也未指示它是否适用于在单独的计算机上运行 IIS 和 SQL Server 的生产 Web 服务器。Add IIS 7 AppPool Identities as SQL Server Logons 微软下面的链接没有提供创建 SQL Server Windows 登录的具体语法:http://www.iis.net/learn/manage/configuring-security/application-pool-identities 我们的目标是在我们的生产环境上,在运行 IIS 7.5 的 Server 2008 R2 计算机上安全地部署 ASP.NET 4.0 Web 应用程序。根据最佳实践,我们在同一域中的另一台计算机上运行 SQL Server 2008。我们想要使用 SQL Sever Windows 身份验证而不是模拟身份验证,以允许在 IIS 箱和 SQL Server 上通信的 ASP.NET 应用程序。目前,SQL Server 登录连接字符串允许 .NET 应用程序连接到 SQL Server,但我们希望升级连接字符串为更安全的 Windows SQL Server 登录。
在 IIS 7.5 中,我们为网站配置了应用程序池。在应用程序池高级设置下,内置帐户尝试使用 ApplicationPoolIdentity 和 Network service,但都没有成功。最佳做法说要使用 ApplicationPoolIdentity 来获得更严格的安全性。
失败的步骤是创建 SQL Server Windows 登录。
我们按照第一个链接中的以下步骤进行操作:
1. 在 SQL Server Management Studio 中,查找安全文件夹(与数据库、服务器对象等文件夹相同级别的安全文件夹...而不是每个单独数据库中的安全文件夹) 2. 右键单击登录并选择“新建登录” 3. 在登录名字段中,输入 IIS APPPOOL\YourAppPoolName - 不要点击搜索 4. 填写您喜欢的任何其他值(例如,身份验证类型,默认数据库等) 5. 点击确定
请告诉我,对于 IIS 7.5 和 SQL Server 分别位于不同的计算机上,我需要使用什么语法来创建 SQL Server Window 登录?
我已多次尝试了"mydomain\machine1$\IIS APPPOOL\MyAppPoolName",但没有成功。错误消息为:“找不到 Windows NT 用户或组 IIS APPPOOL\MyAppPoolName”。
我已经使用 Web 服务器的网络名称替换了 machine1(以及实际的应用程序池名称和域名)。
感谢您提前的帮助。
PS 如果 Microsoft 提供有关如何完成此常见且本应容易的任务的逐步教程将非常好。 您在 StackOverFlow 中的答案将有助于许多人 :)
2个回答

7

解决您的问题的一种方法是为应用程序池设置单独(非内置)帐户。您可以给该帐户最小的权限,并提供对SQL Server的访问权限。

这样,您可以使用一个易于设置的域帐户,但仍然严格控制安全性。


1
Szymon- 感谢你的提示。 如果可能的话,我们希望能够通过网络从 SQL Server 盒子连接到 IIS 7.5 虚拟账户,以保持简单和避免增加潜在攻击面。如果虚拟账户无法在网络上使用,我会记住你的建议。 - Joe Colorado
1
嗨,Szymon- 我没有找到任何信息表明可以在网络上使用虚拟账户,所以我接受了你的答案并将其作为现实世界的解决方案实施。只需要几分钟就可以设置好,而且运行得很好。感谢你的帮助! - Joe Colorado

5

我知道这个问题已经老旧了,但是由于我曾经经历过痛苦的过程直到问题得以解决,我想分享我的经验来回答这个问题。

你所遵循的步骤对我也有效,但是:

3- 你需要添加到SQL Server登录的帐户为mydomain\machine1$而不是mydomain\machine1$\IIS APPPOOL\MyAppPoolName

4- 在总体设置页面中将所有内容保留为默认值(实际上,你需要确保你正在使用Windows身份验证)。

然后转到“用户映射”|选择您想让应用程序访问的数据库|授予它您想要的任何权限。例如,给它db_datareader和db_datawriter权限。

5- 点击OK进行保存。

但请注意,所有使用同一台机器的虚拟账户的应用程序都将能够访问此数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接