我刚刚安装了带有 SQL 服务器和 asp.net mvc 应用程序的 ISS。我希望我的应用程序使用 Windows 身份验证。在我的应用程序方面,我知道我有很好的连接字符串,因为我在我的本地机器上运行它并且工作正常。
在我的新远程服务器上,它不想工作 - 所以我更改了连接字符串以使用凭据 - sa,它工作了。所以我显然缺少一些用于 Windows 身份验证的配置。
到目前为止,我所做的是将网络服务添加到我的 sql server 登录名中,并授予它管理员权限。此外,我的应用程序池正在作为网络服务运行。它仍然不起作用,我错过了什么?
编辑澄清:我的 sql server 中启用了 WinAuth。
我认为“网络服务”用户没有按您期望的方式工作。
尝试将应用程序池设置为以特定用户身份运行,然后将该同一用户添加到 slq 服务器登录。然后在用户映射下为该用户提供对特定数据库所需的最小权限集。通常 db_datareader 和 db_datawriter 就足够了。
请注意,您使用的用户不需要对计算机有任何特殊权限。它可以是本地用户或根本不是任何安全组成员的域用户。如果您专门为此目的创建了一个新用户,您可以将其设为标准用户,然后您可以进入用户管理器并将其从用户组中删除,这样它就没有任何默认的机器访问权限。这样,您仍然可以获得在连接字符串中使用 Windows 身份验证方法的优势。