標籤:
今天開啟網站時,突然報這個錯誤,平時都好好的
Cannot open database "JMECC" requested by the login. The login failed.
Login failed for user ‘NT AUTHORITY\IUSR‘.
我的連接字串是這樣的,用的是 Windows 身分識別驗證登入:
data source=.\SQLEXPRESS;initial catalog=JMECC;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework
想一下最近只是修改了一處Web.config配置,即在 Web.config 中添加了下面這句,它是用來類比IIS驗證賬戶,如果沒有指定使用者名稱,所以預設就用 NT AUTHORITY\IUSR
<identity impersonate="true" />
因為這個使用者登入指定資料庫時許可權不夠,導致 Windows 身分識別驗證就失敗了,有三種解決方案:
1. 可以將連接字串改成使用者名稱(sa)和密碼登入,如果沒有許可權動作伺服器建議採用這個方案;
2. 或者把這句從 System.Web 內注釋掉,但可能影響其它功能,比如檔案操作;
3. 開啟SQL Server Management Studio -> Security -> Logins -> 右鍵 New Login... -> Login name 填入 NT AUTHORITY\IUSR -> OK
在建立的使用者 NT AUTHORITY\IUSR 上點擊右鍵屬性 Properties -> Server Roles 選中 public 和 sysadmin -> User Mapping 選中你的資料庫,在 Default Schema 列填入 dbo -> OK 搞定!
(不知為啥這個編輯器上傳不了圖片了,所以沒)
SQL Server 使用者'NT AUTHORITY\IUSR' 登入失敗