Login failed for user 'IIS APPPOOLmyAppPool
我收到以下错误消息:
Cannot open database"SmallBakery" requested by the login. The login failed. Login failed for user 'IIS APPPOOL\MyAppPool'
如何纠正这个问题?我正在使用Windows7企业版和SQL Server 2012。
如果你不改变,每个应用程序池都有自己的身份。在您的案例中,只需使用SQL Management Studio向数据库中添加一个名为

对于测试,让用户成为
这样,每个应用程序池(可能是每个网站,如果它们都使用自己的应用程序池)只能访问相应的数据库。
这取决于你想如何在你的应用中进行身份验证。你想在你的应用中使用模拟吗?
目前正在发生的是,当试图访问数据库时,您的应用程序池在IIS中的标识正被传递。您可以将应用程序池的标识更改为具有访问数据库的权限,或者更改连接字符串以使用特定的登录名而不是集成的安全性。
如其他人所说,到目前为止,您需要将您的应用程序池系统用户(IIS AppPoolMyAppPool)作为具有适当权限的该数据库的数据库用户添加。
请注意,这只会在您的IIS/服务器上找到,但如果您计划将应用程序迁移到其他IIS/SQL服务器,则需要同时在SQL Server和IIS中进行更改。我建议您也考虑使用SQL Server身份验证——这对于您的特定情况可能更方便。
看看这篇文章。你的问题听起来和我遇到的问题很相似,有着相同的错误信息。
http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance-ownership.aspx