我有以下错误消息:
无法打开登录请求的数据库“SmallBakery”。登录失败。用户 'IIS APPPOOL\MyAppPool' 登录失败
如何纠正这个?我正在使用 Windows 7 企业版和 Sql server 2012。
我有以下错误消息:
无法打开登录请求的数据库“SmallBakery”。登录失败。用户 'IIS APPPOOL\MyAppPool' 登录失败
如何纠正这个?我正在使用 Windows 7 企业版和 Sql server 2012。
如果您不更改,则每个应用程序池都有自己的身份。在您的情况下,只需使用 SQL Management StudioSmallBakery
将名称添加到数据库中即可。IIS APPPOOL\MyAppPool
您可以在数据库的“安全/用户”子节点中找到用户列表。这应该看起来像这样:
为了测试,让用户成为db_owner
角色的成员。如果可行,请删除此角色并让它成为db_datareader
and的成员db_datawriter
。
这样,每个应用程序池(可能是每个网站,如果它们都使用自己的应用程序池)只能访问相应的数据库。
这取决于您希望如何在您的应用程序中进行身份验证。您是否尝试在您的应用程序中使用模拟?
现在发生的情况是,当您尝试访问数据库时,您在 IIS 中的应用程序池的身份正在通过。您可以将应用程序池的身份更改为可以访问数据库的身份,或者您可以更改连接字符串以使用特定登录名而不是集成安全性。
看看这个帖子。您的问题听起来与我遇到的问题相似,但错误消息完全相同。
就像到目前为止其他人所说的那样,您需要获取您的应用程序池系统用户(IIS AppPool\myapppool)并将其添加为具有适当权限的该数据库的数据库用户。
请注意,这只会在您的 IIS/Server 上找到,但如果您计划将应用程序迁移到不同的 IIS/Sql 服务器,则需要同时更改 SQL Server 和 IIS。我建议您也考虑使用 sql server 身份验证 - 对于您的特定情况,它可能更方便。