gpt4 book ai didi

asp.net - 如何让 ELMAH 与 SQL Server 一起工作(权限问题)

转载 作者:行者123 更新时间:2023-12-04 05:10:38 26 4
gpt4 key购买 nike

我已经让 ELMAH 在我的 (Cassini) 开发服务器上工作,并且对它非常满意,但是现在我正试图将所有内容都转移到我的生产服务器 (IIS7) 上,蜜月期看起来已经结束了。

我已经过了 "gotcha" with IIS7 ,坦率地说,这在文档中可以更好地突出显示,如果我只使用内存日志,那么它就可以工作。

但是,我试图让它使用 SQL Server 日志(就像我在我的开发系统上所做的那样),并且我收到了如下错误:

The EXECUTE permission was denied on the object ELMAH_GetErrorsXml



好吧,好吧。我知道如何授予数据库权限,但我真的很难理解我需要授予访问权限的用户和存储的过程/表。

真正让我困惑的是,我不需要做任何这样的事情来让它在我的开发服务器上工作。我能看到的唯一区别是,在我的开发服务器上,它似乎连接为 NT AUTHORITY\IUSR,而在我的生产服务器上,它似乎连接为 NT AUTHORITY\NETWORK SERVICE。 (它只是使用受信任的连接,所以我没有明确配置它来做到这一点 - 我认为它与 Web 服务器有关)。 更新 :我已经确定,因为我使用的是 Cassini,它实际上是以我(管理员)而不是 IUSR 身份登录的,这解释了为什么我没有遇到任何权限问题。

在我的开发服务器上,IUSR 帐户是公共(public)数据库角色的成员,并且可以访问所需的数据库(再次称为“公共(public)”)。没有明确授予对象级权限。 [见上面的更新——这无关紧要]。

在我的生产服务器上,我以完全相同的方式添加了 NETWORK SERVICE(公共(public)数据库角色,对数据库的显式访问为“公共(public)”)。然而,我得到这个权限错误。为什么?!! [请参阅上面的更新 - 我没有收到权限错误的唯一原因是因为我以管理员身份运行]。

而且,当然,如果它在本地工作的事实只是“运气”,我将需要知道要授予访问哪些 SP/表。我的猜测是所有 3 个 SP,而不是表,但最好(再次)看到一些明确说明这一点的文档。

最佳答案

授予用户 USER_NAME 执行权限所需的 sql 示例:

GRANT EXECUTE ON ELMAH_GetErrorsXml TO USER_NAME
GRANT EXECUTE ON ELMAH_GetErrorXml TO USER_NAME
GRANT EXECUTE ON ELMAH_LogError TO USER_NAME

关于asp.net - 如何让 ELMAH 与 SQL Server 一起工作(权限问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2630071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com