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/
平时多记记,到用时才能看看,记录你的进步,分享你的成果