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

问题描述 投票:0回答:2

我已经彻底搜索过 - 如果我错过了明显的答案,请提前道歉。 按照下面链接中的建议进行操作,但解决方案不起作用。该解决方案也没有表明它是否适用于在不同计算机上运行 IIS 和 SQL Server 的生产 Web 服务器。 添加 IIS 7 AppPool 身份作为 SQL Server 登录

下面的 Microsoft 链接未提供创建 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 盒上的 ASP.NET 应用程序与 SQL Server 进行通信。目前,SQL Server 登录连接字符串允许 .NET 应用程序连接到 SQL Server,但我们希望将连接字符串升级为 Windows SQL Server 登录以更加安全。

在 IIS 7.5 上,我们为网站配置了应用程序池。 在应用程序池高级设置下,内置帐户尝试同时使用 ApplicationPoolIdentity 和网络服务,但没有成功。据说最佳实践是使用 ApplicationPoolIdentity 来实现更严格的安全性。

失败的步骤是创建 SQL Server Windows 登录名。

我们按照第一个链接执行了以下步骤:

  1. 在 SQL Server Management Studio 中,查找 Security 文件夹(与数据库、服务器对象等文件夹处于同一级别的安全文件夹...而不是每个单独数据库内的安全文件夹)

  2. 右键单击登录并选择“新登录”

  3. 在登录名字段中,输入

    IIS APPPOOL\YourAppPoolName
    - 不要单击搜索

  4. 填写您喜欢的任何其他值(即身份验证类型、默认数据库等)

  5. 点击确定

您能否告诉我,IIS 7.5 和 SQL Server 位于不同的盒子上,我需要使用什么语法来创建 SQL Server 窗口登录?

我已经尝试过多次:“

mydomain\machine1$\IIS APPPOOL\MyAppPoolName
”但没有成功。
错误消息是:“
Windows NT User or group IIS APPPOOL\MyAppPoolName can not be found

我使用网络服务器的网络名称代替 machine1(以及实际的应用程序池名称和域名)。

预先感谢您的帮助。

PS 如果 Microsoft 能够提供有关如何完成这一常见任务以及什么应该是简单任务的分步教程,那就太好了。您在 StackOverFlow 上的答案将会帮助很多人:)

asp.net sql-server iis-7.5 application-pool
2个回答
7
投票

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

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


5
投票

我知道这个问题已经很老了,但是由于我在解决这个问题之前一直很痛苦,所以我想分享我的经验来回答这个问题。

您遵循的步骤对我有效,除了:

  1. 您需要添加到 SQL Server 登录的帐户是

    mydomain\machine1$
    而不是
    mydomain\machine1$\IIS APPPOOL\MyAppPoolName

  2. 将常规设置页面中的所有内容保留为默认值(实际上,您需要确保您使用的是 Windows 身份验证)。

然后转到用户映射 |选择您希望应用程序访问的数据库 |授予它您想要的任何权限。例如,授予它

db_datareader
db_datawriter
权限。

  1. 单击“确定”保存。

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

© www.soinside.com 2019 - 2024. All rights reserved.