Max*_*Max 222 sql-server iis-7
我正在使用集成管道模式的AppPool运行IIS 7网站.AppPools不在NetworkService等运行.身份(按用途),但使用它自己的AppPool Identitiy(IIS AppPool\MyAppPool).
这是一个所谓的服务帐户或虚拟帐户.(用户帐户,不是完整帐户......)
我想授予此服务帐户(IIS AppPool\MyAppPool)连接到我的SQL Server 2008 Express(以混合身份验证模式运行)的权限.
虽然SQL Server可以添加任何普通用户帐户,但无法将IIS AppPool\MyAppPool虚拟帐户添加到有效登录中(SQL Server表示无法找到该帐户).
有什么技巧,我需要启用什么来使虚拟帐户工作?(根据taskmgr,w3wp.exe进程在此身份下运行,但我无法在NTFS安全性中使用该帐户...)
谢谢你的帮助!
dp.*_*dp. 364
"IIS APPPOOL\AppPoolName"将起作用,但如前所述,它似乎不是有效的AD名称,因此当您在"选择用户或组"对话框中搜索它时,它将不会显示(实际上,它会找到它,但它会认为它是一个实际的系统帐户,并且会尝试将其视为......这将无法正常工作,并会向您提供有关未找到它的错误消息).
我是如何让它工作的:
只要AppPool名称确实存在,就应该创建登录名.
Rya*_*hel 58
CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];
Run Code Online (Sandbox Code Playgroud)
可以这样解决
如果这样做,则不需要在数据库中创建用户。
如果你要跨越机器,你需要使用NETWORK SERVICE,LOCAL SYSTEM,域帐户或SQL 2008 R2(如果有的话)托管服务帐户(如果你有这样的基础设施,这是我的首选) .您不能使用Active Directory域不可见的帐户.
作为附注,使用虚拟帐户(NT Service\MyService和IIS AppPool\MyAppPool)的流程仍然在"NETWORK SERVICE"帐户下运行,如本文建议http://www.adopenstatic.com/cs/blogs/ken/ archive/2008/01/29/15759.aspx.唯一的区别是,这些过程是成员的"NT服务\为MyService"或"IIS程序池\ MyAppPool"基团的(因为这些实际上是基团和不用户).这也是为什么流程在网络上以与NETWORK SERVICE帐户相同的方式在机器上进行身份验证的原因.
保护访问权限的方法不依赖于此帐户没有NETWORK SERVICE权限,而是专门授予"NT Service\MyService"或"IIS AppPool\MyAppPool"更多权限,并在必要时删除"Users"的权限.
如果有人有更准确或矛盾的信息,请发布.
请参阅: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>'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124993 次 |
| 最近记录: |