用户 'IIS APPPOOL\myAppPool 登录失败

Posted

技术标签:

【中文标题】用户 \'IIS APPPOOL\\myAppPool 登录失败【英文标题】:Login failed for user 'IIS APPPOOL\myAppPool用户 'IIS APPPOOL\myAppPool 登录失败 【发布时间】:2013-05-01 21:27:18 【问题描述】:

我收到以下错误消息:

无法打开登录请求的数据库“SmallBakery”。登录失败。用户“IIS APPPOOL\MyAppPool”登录失败

如何纠正这个问题?我正在使用 windows 7 企业版和 Sql server 2012。

【问题讨论】:

该用户是否可以访问 sql server? 你能发布你的数据库连接字符串吗? 【参考方案1】:

如果您不进行更改,则每个应用程序池都有自己的身份。在您的情况下,只需使用 SQL Management Studio 将一个名为 IIS APPPOOL\MyAppPool 的新用户添加到您的数据库 SmallBakery。您可以在数据库的“安全/用户”子节点中找到用户列表。这应该看起来像这样:

为了测试,让用户成为db_owner 角色的成员。如果可行,请删除此角色,让它成为 db_datareaderdb_datawriter 的成员。

这样,每个应用程序池(可能是每个网站,如果它们都使用自己的应用程序池)只能访问相应的数据库。

【讨论】:

谢谢!!这很有帮助! 为我工作!谢谢。 以下答案中的额外见解帮助我解决了同样的错误:***.com/a/1973895/704808 当您的 SQL Server 实例在另一台主机上然后是您的 IIS 主机上时,这可以工作吗?因为我需要解决同样的问题,但是 SQL 和 IIS 不在同一台机器上。因此,为该新用户使用 Windows 身份验证将不起作用【参考方案2】:

这取决于您希望如何在应用中进行身份验证。您是否尝试在您的应用中使用模拟?

现在发生的情况是,当您尝试访问数据库时,您在 IIS 中的应用程序池的身份会被传递。您可以将应用程序池的身份更改为可以访问数据库的身份,或者您可以更改连接字符串以使用特定登录名而不是集成安全性。

【讨论】:

我正在使用以下连接字符串:connectionString="Data Source=HAIDRWHP5005160\SQLEXPRESS;Initial Catalog=SmallBakery;Integrated Security=True" 在 IIS 应用程序池中我有:身份:ApplicationPoolIdentity 对。所以就像我说的,您需要将应用程序池的标识更改为可以访问数据库的内容或更改您的连接字符串。 ... 或将应用程序池身份作为用户添加到您的数据库中。 是的,如果您将数据库保存在与 IIS 相同的框上,这将起作用。如果您将它们移动到不同的服务器,最好以普通域用户的身份进行。【参考方案3】:

看看这篇文章。您的问题听起来与我遇到的问题相似,但错误消息完全相同。

http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance-ownership.aspx

【讨论】:

我在***.com/questions/7698286/…看到了类似的东西 @Freddy,正如对您所指答案的评论所说:“如果您担心安全性,请不要这样做”。【参考方案4】:

到目前为止,就像其他人所说的那样,您需要获取您的应用程序池系统用户 (IIS AppPool\myapppool) 并将其添加为具有适当权限的该数据库的数据库用户。

请注意,这仅适用于您的 IIS/Server,但如果您计划将应用程序迁移到不同的 IIS/Sql 服务器,则需要同时更改 SQL Server 和 IIS。我建议您也考虑使用 sql server 身份验证——它可能更适合您的具体情况。

【讨论】:

【参考方案5】:

在我的情况下,这些步骤引导我成功处理了这个错误。希望它也能帮助你

【讨论】:

请编辑这篇文章,让答案是文字而不是图片。

以上是关于用户 'IIS APPPOOL\myAppPool 登录失败的主要内容,如果未能解决你的问题,请参考以下文章

安全问题 IIS7.5 / IIS APPPOOL\用户未授权但拥有完全控制权?

给自己电脑iis服务器部署了网站局域网用户可以访问,但外网用户不能访问?

如何在iis中配置权限,使局域网用户可以访问,其他用户不能访问?(详细讲解)

用户 'IIS APPPOOL***' 登录失败

如何让用户以 css 样式查看已发布的 IIS 页面?

如何使用 PHP/IIS 读取 Windows 登录用户名