sqlserver/System.Data.SqlClient.SqlException (0x80131904): 用户 'NT AUTHORITY\IUSR' 登录失败,如何修复

本人最近学习XAF框架项目,在本地运行可以连接到数据库,发布后无法连接,抛出用户 'NT AUTHORITY\IUSR' 登录失败

问题截图:

 

 

问题原因:

数据库连接使用的window身份验证时,Web用来模拟IIS验证账户,如果没有指定用户名,所以默认就用 NT AUTHORITY\IUSR 

数据库连接是这样的(XAF项目默认生成的,是window身份验证登陆的,也就是我下面的用户、密码不起作用)

 <!--本地数据库时,使用 -->
 <add name="ConnectionString" connectionString="Integrated Security=SSPI;Pooling=false;Data Source=.;Initial Catalog=XAF_221225;User ID=sa;Password=sa" />

问题解决方式

方式一:使用sa用户密码验证(数据库连接有问题,是window身份验证)

 <!-- 本地数据库时,使用-->
 <add name="ConnectionString" providerName="System.Data.SqlClient" connectionString="Pooling=false;Data Source=.; Initial Catalog=XAF_221225;User ID=sa;Password=sa"/>

方式二:使用window身份验证登陆(修改对应NT AUTHORITY\IUSR 用户权限

1)创建用户"NT AUTHORITY\IUSR"

   打开SQL Server Management Studio -> Security -> Logins -> 右键 New Login... -> Login name 填入 NT AUTHORITY\IUSR -> OK

 

2) 对用户“NT AUTHORITY\IUSR”赋权限

在新建的用户 NT AUTHORITY\IUSR 上点击右键属性 Properties -> Server Roles 选中 public sysadmin -> User Mapping 选中你的数据库,在 Default Schema 列填入 dbo -> OK 搞定

 

 

 

 

 PS:

参考网址:https://www.bbsmax.com/A/gAJGB2b3zZ/

posted @ 2022-12-23 18:14  小小邪  阅读(1166)  评论(0编辑  收藏  举报