请求协助配置IIS托管Web API通过Windows身份验证连接SQL Server
解决方案
问题根源
Web API运行在IIS应用池下,默认使用的内置身份(如ApplicationPoolIdentity、Network Service)在访问SQL Server时,会以服务器的计算机域账号Domain\ServerName$进行身份验证,而该账号未在SQL Server中创建对应的登录权限,导致连接失败。
具体配置方案
方案一:为服务器计算机账号配置SQL登录权限
- 打开SQL Server Management Studio(SSMS),登录到目标SQL Server实例
- 展开安全性节点,右键登录名,选择「新建登录名」
- 在「登录名」输入框中填写
Domain\ServerName$(替换为实际的域和服务器名称) - 切换到「用户映射」选项卡,勾选目标数据库
myDataBase,并为该数据库用户分配所需权限(如db_datareader、db_datawriter,或根据业务需求调整) - 保存设置后,重启Web API对应的IIS应用池,测试连接
方案二:修改IIS应用池运行身份为有权限的AD账号
- 打开IIS管理器,找到Web API所属的应用池
- 右键应用池,选择「高级设置」
- 在「进程模型」区域的「标识」项,点击右侧的「...」按钮
- 选择「自定义账户」,输入已被授权访问SQL Server的AD账号及密码,确认保存
- 重启该应用池,测试Web API的SQL连接
内容的提问来源于stack exchange,提问作者hansa
相关产品推荐
相关产品推荐

