【发布时间】:2010-04-13 13:57:13
【问题描述】:
我已经让 ELMAH 在我的 (Cassini) 开发服务器上工作,并且对它非常满意,但现在我正试图将所有内容移至我的生产服务器 (IIS7),蜜月期似乎结束了。
我已经通过了"gotcha" with IIS7,坦率地说,在文档中可以更好地突出显示,如果我只使用内存日志,那么它就可以工作。
但是,我试图让它使用 SQL Server 日志(就像我在我的开发系统上所做的那样),我收到了如下错误:
对象 ELMAH_GetErrorsXml 的 EXECUTE 权限被拒绝
嗯,很好。我知道如何授予数据库权限,但我真的很难理解需要授予访问权限的用户和存储的过程/表。
真正让我困惑的是,我不需要做任何类似的事情来让它在我的开发服务器上工作。我能看到的唯一区别是,在我的开发服务器上,它似乎连接为 NT AUTHORITY\IUSR,而在我的生产服务器上,它似乎连接为 NT AUTHORITY\NETWORK SERVICE。 (它只是使用受信任的连接,所以我没有明确配置它来做到这一点 - 我认为它与 Web 服务器有关)。 更新:我已经确定,因为我使用的是 Cassini,它实际上是以我(管理员)而不是 IUSR 身份登录的,这解释了为什么我没有遇到任何权限问题。
在我的开发服务器上,IUSR 帐户是公共数据库角色的成员,并且可以访问所需的数据库(同样是“公共”)。没有明确授予对象级权限。 [参见上面的更新 - 这无关紧要]。
在我的生产服务器上,我以完全相同的方式添加了 NETWORK SERVICE(公共数据库角色,以“公共”身份显式访问数据库)。然而,我得到这个权限错误。为什么?!! [请参阅上面的更新 - 我没有收到权限错误的唯一原因是因为我以管理员身份运行]。
当然,如果它在本地工作的事实只是“运气”,我将需要知道要授予访问哪些 SP/表。我的猜测是所有 3 个 SP,而 不是 表,但最好(再次)看到一些明确说明这一点的文档。
【问题讨论】:
标签: asp.net visual-studio-2008 sql-server-2008 elmah