工作组环境下IIS+.NET Core 6通过应用池用户连接SQL Server配置方法
工作组环境下用应用池身份连接SQL Server的配置步骤
1. appsettings.json 连接字符串写法
移除原连接字符串中的User ID和Password参数,改用Windows身份验证,示例如下:
"ConnectionStrings": { "DefaultConnection": "Data Source=WEB-BE;Initial Catalog=你的目标数据库名;Integrated Security=True;Trust Server Certificate=True" }
Integrated Security=True:指定使用当前进程的身份(即应用池身份)连接SQL ServerTrust Server Certificate=True:工作组环境下通常没有CA签发的证书,添加该参数可避免SSL证书验证错误
2. WEB-FE服务器IIS配置
由于两台机器处于工作组而非域环境,无法使用IIS内置的ApplicationPoolIdentity跨机器验证,需创建专用本地用户:
- 在WEB-FE上创建本地用户(比如命名为
SQLAppUser),设置强密码,同时勾选密码永不过期、用户不能更改密码 - 打开IIS管理器,找到你的.NET Core应用对应的应用池,右键选择「高级设置」
- 找到「标识」选项,点击右侧的「...」,选择「自定义账户」,点击「设置」后输入刚才创建的
SQLAppUser和对应的密码 - 确认应用池的*.NET CLR版本*设置为「无托管代码」(适配.NET Core应用)
- 找到「标识」选项,点击右侧的「...」,选择「自定义账户」,点击「设置」后输入刚才创建的
- 给
SQLAppUser授予WEB应用目录权限:找到网站根目录,右键打开「属性」-「安全」页,添加WEB-FE\SQLAppUser,授予读取&执行、列出文件夹内容、读取权限
3. WEB-BE服务器SQL Server配置
需在WEB-BE上创建与WEB-FE完全同名同密码的本地用户,再配置SQL Server权限:
- 在WEB-BE上创建本地用户
SQLAppUser,密码必须和WEB-FE上的完全一致,同样勾选密码永不过期、用户不能更改密码 - 打开SQL Server Management Studio (SSMS),连接到目标SQL Server实例
- 展开「安全性」-「登录名」,右键选择「新建登录名」
- 选择「Windows身份验证」,点击「搜索」,输入
WEB-BE\SQLAppUser,确认名称无误后点击「确定」 - 切换到「用户映射」选项卡,勾选你的目标数据库,在下方「数据库角色成员身份」中勾选db_datareader、db_datawriter;若需使用EF Core执行迁移操作,额外勾选db_owner或授予对应的DDL权限
- 选择「Windows身份验证」,点击「搜索」,输入
- 检查SQL Server身份验证模式:打开SQL Server配置管理器,找到对应的SQL Server实例,右键「属性」-「安全性」,确保服务器身份验证为「SQL Server和Windows身份验证模式」
- 重启SQL Server服务,使配置生效
内容的提问来源于stack exchange,提问作者NovaDev
相关产品推荐
相关产品推荐

