本人最近學習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/