我有一个运行 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 实例和数据库添加登录名/用户吗?- 这样做有安全问题吗?(注意:这将是一个生产环境)
谢谢,克里斯