在SQL Server 2008 R2上配置ASP.NET MVC应用程序的IIS 7.5应用程序池身份登录

问题描述:

我尝试在SQL Server 2008 R2上使用IIS 7.5应用程序池身份登录,以便我的ASP.NET Web应用程序可以连接到数据库...在SQL Server 2008 R2上配置ASP.NET MVC应用程序的IIS 7.5应用程序池身份登录

Using this approach在我的本地开发机器(同一台机器上的IIS 7.5和SQL Server 2008 R2)上正常工作。

但是,当我尝试在生产中设置相同的值时(IIS和SQL服务器是分开的),我无法将“IIS APPPOOL \ MyAppAppPool”登录添加到SQL Server 2008 R2。

请注意,在这两种情况下创建因为在SQL Server登录时,您不能使用“浏览...”“IIS APPPOOL \ MyAppAppPool”用户身份是动态的(或“特殊”)...

任何想法?

更新:

有关应用程序池标识see here更多信息。

从文章:

每当一个新的应用程序池创建 ,在IIS管理过程 创建表示 应用程序池本身的名称的安全标识符(SID) 。例如,如果使用 创建应用程序池 ,则名称为“MyNewAppPool”的安全性 标识符名称为 在Windows安全系统的 中创建“MyNewAppPool”。从这个 指向,资源可以通过 使用此标识进行保护。但是, 标识不是真正的用户帐户; 它不会显示为Windows用户管理控制台的 中的用户。

该条款声明(在“访问网络”下),您仍然使用域中的<domainname>\<machinename>$ aka计算机帐户。

因此,如果两个服务器都处于“foobar的”域,网络箱是“自行车”,用于SQL Server实例的登录是foobar\bicycle$

如果您不在域中,则有没有通用的目录进行身份验证。使用SQL登录用户名和密码为简单起见

编辑,注释后

如果域信任,然后在其中添加一个全局组可以使用machien帐户仍然为SQL Server(使用域本地组,等等)

至于使用应用程序池身份,它们是本地到您的Web服务器只根据文章。它们对SQL Server没有任何意义。如果您需要区分网站,请使用适当的域帐户用于应用程序池。

你不能双方都有...

+0

嗨,对不起,如果我不清楚。 IIS和DB服务器位于不同的网络/域中(IIS服务器位于DMZ中,而DB服务器位于“内部”)。另外,我喜欢应用程序池标识方法,因为它允许指定哪个标识可以访问哪个数据库......如果我使用机器帐户,那么每个应用程序都会丢失该粒度? – zam6ak 2010-12-16 17:34:11

+0

对不起,如果我正确理解文章,应用程序池标识是在工作人员启动特定池(我的情况下为应用程序)时“注入”的虚拟帐户。如果我停止IIS,我仍然可以将APP POOL \ MyAppAppPool添加到我的本地*数据库实例(同一台计算机)上的SQL Server登录名,但不能在远程数据库服务器(不同的计算机)上添加......从SQL Server立场登录不在eiter的情况下存在,但它允许我在本地机器上创建登录,但不能在远程... – zam6ak 2010-12-16 17:56:22

+1

当然,您在本地添加它,因为它是同一台机器。它远程没有意义。所以你不能这样做。 *根据文章* – gbn 2010-12-16 18:11:16