IIS佈署網站 登入SQL SERVER資料庫失敗(新增SQL SERVER 使用者)

  • 3395
  • 0
  • 2017-12-21

在VS開發程式的時候連線到SQL SERVER 的LocalDB 都正常,

佈署到IIS之後就出現 

無法開啟登入所要求的資料庫 xxx。登入失敗。 使用者 'XXX\yyyy' 的登入失敗

 

手邊的專案在本機開發的時候,DB是連線到 SQL Server 的 (LocalDB)\MSSQLLocalDB

在開發的時候使用windows 驗證

EF的ConnectionString 如下:

<add name="WORK_DBEntities" connectionString="metadata=res://*/Models.WEBSC.csdl|res://*/Models.WEBSC.ssdl|res://*/Models.WEBSC.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;initial catalog=WEBSC_DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

這個做法在VS上跑沒什麼問題,連到DB也正常,

但是佈署到IIS之後,出現錯誤訊息:

無法開啟登入所要求的資料庫 xxx。登入失敗。 使用者 'XXX\yyyy' 的登入失敗

造成這個問題的原因是因為原本我使用  "Windows驗證"

但是連線到IIS的人員沒有這個帳號,自然就會出錯,

解決方法很簡單,就是改為SQL Sever驗證,並新增使用者可用帳號,

安全性->登入->按右鍵->新增登入

1.輸入使用者名稱

2.輸入密碼

3.取消強制執行密碼原則

4.選擇預設資料庫

5.確定

修改完畢之後在修改一下部屬在IIS上面的Web.config內的ConnectionString

加上  User ID=設定的帳號;Password=設定的密碼;

把integrated security=True; 移除

<add name="WEBSC_DBEntities" connectionString="metadata=res://*/Models.WEBSC.csdl|res://*/Models.WEBSC.ssdl|res://*/Models.WEBSC.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=WEBSC_DB;User ID=設定的帳號;Password=設定的密碼;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

這樣就可以解決這個問題了