Chr*_*lsh 5 applicationpoolidentity sql-server-2014-express iis-8.5
我有一个运行 Windows Server 2012 R2、IIS 8.5(包括 ClassicASP 功能)和 SQL Server 2014 Express 的新服务器版本。我想使用应用程序池标识连接到数据库。数据库设置为“Windows 身份验证模式”。
我的应用程序池标识名为activbase.net. 我在 SQL Server 中设置了一个名为的安全登录IIS AppPool\activbase.net,用户将它映射到我的数据库db_datareader并db_datawriter访问。
但是,当我尝试从网站访问数据库时,我得到:
无法打开登录请求的数据库“ActivbaseLive”。登录失败。
我认为这足以使连接正常工作。应用程序日志(事件查看器)显示:
用户“NT AUTHORITY\IUSR”登录失败。原因:无法打开明确指定的数据库“ActivbaseLive”。[客户: ]
所以我NT AUTHORITY\IUSR同样添加到 SQL Server>Security>Logins and Databases>[ActivbaseLive]>Security>Users,这解决了问题。
我的问题如下:
NT AUTHORITY\IUSR除了IIS AppPool\activbase.net登录名/用户之外,我是否还需要向我的 SQL Server 实例和数据库添加登录名/用户?谢谢,克里斯
不需要NT AUTHORITY\IUSR。除了标识之外,您不需要为标识添加 SQL Server 登录名IIS AppPool\activbase.net。对于IIS AppPool\activbase.net使用 Windows 身份验证连接到 SQL Server,仅应用程序池标识的登录就足够了。
NT AUTHORITY\IUSR是一个内置的 Windows 帐户,它是为您的应用程序启用匿名身份验证时使用的默认身份。此页面描述了帐户的基本原理。
要使用该IIS AppPool\activbase.net身份连接到您的数据库,您需要将为匿名用户设置的帐户从NT AUTHORITY\IUSR您的IIS AppPool\activbase.net应用程序池身份更改为您的应用程序池身份。请按以下步骤进行更改:
下面链接中的问题(及其答案)解决了同样的问题:
关于您的第二个问题,“这样做是否存在安全问题?”,答案是“是”。您最好不要让NT AUTHORITY\IUSR内置帐户访问您的 SQL Server 数据库,因为它在您的 IIS Web 服务器上托管的任何其他网站(及其应用程序)上用作默认匿名帐户。这意味着那些其他网站和应用程序将能够连接到您的数据库。如果它们在攻击中受到损害,它们可能会被用来访问您的数据。所以最好不要为NT AUTHORITY\IUSR. 相反,限制对您网站(或应用程序)应用程序池标识的数据库访问。
| 归档时间: |
|
| 查看次数: |
4465 次 |
| 最近记录: |