将IIS 7 AppPool标识添加为SQL Serverlogin

我正在使用集成pipe道模式的AppPool运行IIS 7网站。 AppPools不会在NetworkService等下运行,而是使用它自己的AppPool Identitiy(IIS AppPool \ MyAppPool)。

这是一个所谓的服务帐户或虚拟帐户。 (一个用户帐户,这不是一个完整的帐户…)

我想给这个服务帐户(IIS AppPool \ MyAppPool)的权限连接到我的SQL Server 2008 Express(运行在混合身份validation模式)。

虽然SQL Server可以添加任何正常的用户帐户,IIS AppPool \ MyAppPool虚拟帐户不能被添加到有效的login(SQL Server说,该帐户找不到)。

有什么窍门,我需要使虚拟账户的工作? (w3wp.exe进程根据taskmgr在此标识下运行,但是我不能在NTFS安全中使用该帐户…)

谢谢你的帮助!

“IIS APPPOOL \ AppPoolName”将工作,但如前所述,它似乎不是一个有效的AD名称,因此当您在“select用户或组”对话框中search时,它不会显示(实际,它会发现它,但它会认为它是一个实际的系统帐户,它会试图对待它,这将无法正常工作,并会给你关于它没有被发现的错误消息。

我如何得到它的工作是:

  1. 在SQL Server Management Studio中,查找安全性文件夹(与数据库,服务器对象等文件夹相同级别的安全性文件夹…不是每个单独数据库中的安全性文件夹)
  2. 右键单击login并select“新buildlogin”
  3. 在login名字段中,inputIIS APPPOOL \ YourAppPoolName – 不要单击search
  4. 填写你喜欢的任何其他值(即authenticationtypes,默认数据库等)
  5. 点击OK

只要AppPool名称确实存在,现在就应该创buildlogin名。

 CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS; CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool]; 

作为附注,使用虚拟帐户(NT Service \ MyService和IIS AppPool \ MyAppPool)的进程仍在“NETWORK SERVICE”帐户下运行,因为这个postbuild议http://www.adopenstatic.com/cs/blogs/ken/ archive / 2008/01/29 / 15759.aspx 。 唯一的区别是这些进程是“NT Service \ MyService”或“IIS AppPool \ MyAppPool”组的成员(因为这些组实际上是组而不是用户)。 这也是networking服务帐户在进行networkingauthentication的原因,就像机器一样。

安全访问的方式不是依赖于此帐户不具有NETWORK SERVICE权限,而是为“NT Service \ MyService”或“IIS AppPool \ MyAppPool”授予更多的权限,并在必要时删除“用户”的权限。

如果有人有更准确或矛盾的信息,请发布。

如果你要跨机器,你需要使用networking服务,本地系统,域帐户或SQL 2008 R2(如果你有)托pipe服务帐户(如果你有这样的基础设施,这是我的首选) 。 您不能使用Active Directory域不可见的帐户。

这可能是你正在寻找…

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

我还build议长期考虑一个有限的权利域用户,你正在尝试在筒仓机器场景中正常工作,但是如果你移动到另一台机器的数据库服务器,你将不得不做出改变。

我通过反复试验发现了这个问题……装甲中真正的裂缝是在IIS的Configuration Editor设置的。

Section: system.webServer/security/authentication/windowsAuthentication

From: ApplicationHost.config <locationpath='ServerName/SiteName' />

所谓的useAppPoolCredentials (默认情况下设置为False ,将其设置为True ,生活变得很棒!!!希望这可以为下一个家伙节省痛苦….

在这里输入图像描述

看看: http : //www.iis.net/learn/manage/configuring-security/application-pool-identities

 USE master GO sp_grantlogin 'IIS APPPOOL\<AppPoolName>' USE <yourdb> GO sp_grantdbaccess 'IIS APPPOOL\<AppPoolName>', '<AppPoolName>' sp_addrolemember 'aspnet_Membership_FullAccess', '<AppPoolName>' sp_addrolemember 'aspnet_Roles_FullAccess', '<AppPoolName>'