我有以下錯誤信息:用戶登錄失敗「IIS APPPOOL myAppPool
Cannot open database "SmallBakery" requested by the login. The login failed. Login failed for user 'IIS APPPOOL\MyAppPool'
如何糾正呢?我正在使用Windows 7企業版和Sql server 2012.
我有以下錯誤信息:用戶登錄失敗「IIS APPPOOL myAppPool
Cannot open database "SmallBakery" requested by the login. The login failed. Login failed for user 'IIS APPPOOL\MyAppPool'
如何糾正呢?我正在使用Windows 7企業版和Sql server 2012.
如果你不改變,每個應用程序池都有它自己的身份。就你而言,只需使用SQL Management Studio將名爲IIS APPPOOL\MyAppPool
的新用戶添加到數據庫SmallBakery
即可。您可以在數據庫的「安全/用戶」子節點中找到用戶列表。這應該是這個樣子的是:
爲了進行測試,讓用戶成爲db_owner
角色的成員。如果可行,請刪除此角色,並讓其成爲db_datareader
和db_datawriter
的成員。
這樣,每個應用程序池(也許每個網站,如果他們都使用自己的應用程序池)只能訪問相應的數據庫。
這取決於您想如何在您的應用程序中進行身份驗證。你想在你的應用中使用模擬嗎?
現在發生的事情是,當您嘗試訪問數據庫時,您的應用程序池在IIS中的身份正在通過。您可以將應用程序池的身份更改爲可以訪問數據庫的內容,或者可以更改連接字符串以使用特定的登錄名,而不是集成的安全性。
查看此文章。您的問題聽起來與我遇到的問題類似,具有相同的確切錯誤消息。
我在看到類似的東西在http://stackoverflow.com/questions/7698286/login-failed-for-user-iis-apppool-asp-net-v4-0 – Freddy 2013-05-07 20:37:17
@Freddy,作爲對答案的評論,再提及說:「如果你擔心安全問題,不要這樣做」。 – 2013-05-07 20:46:29
與其他人一樣,至今爲止,您需要將您的應用程序池系統用戶(IIS AppPool \ myapppool)添加爲具有相應權限的數據庫用戶。
請注意,這隻能在您的IIS /服務器上找到,但如果您計劃將應用程序遷移到其他IIS/Sql服務器,則需要在SQL Server和IIS中進行更改。我建議你也考慮sql服務器認證 - 它可能會更方便您的具體情況。
讓用戶訪問sql服務器? – 2013-05-07 19:54:56
你可以發佈你的數據庫連接字符串嗎? – JackLock 2013-05-07 20:08:51