今天打開網站時,突然報這個錯誤,平時都好好的Cannot open database "JMECC" requested by the login. The login failed.Login failed for user 'NT AUTHORITY\IUSR'.我的連接字元串是這樣的,用的是 ...
今天打開網站時,突然報這個錯誤,平時都好好的
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 搞定!
(不知為啥這個編輯器上傳不了圖片了,所以沒截圖)