【发布时间】:2014-11-12 22:49:51
【问题描述】:
我有一个在 Windows Server 2012R2 上的 IIS (v8.5.9600) 下运行的经典 ASP 应用程序。其中一个页面使用文件上传控件,该控件允许用户上传要由系统处理的数据文件。上传文件后,将执行一个存储过程,获取上传文件的名称并将其插入表中。
我的一些用户在上传文件后收到了一条错误消息。检查IIS日志我看到错误如下...
244|80040e09|[Microsoft][ODBC_SQL_Server_Driver][SQL_Server]The_EXECUTE_permission_was_denied_on_the_object_'myStoredProcedureName'__database_'myDatabaseName'__schema_'dbo'.,
从阅读其他articles 看来,我似乎需要授予此特定存储过程的执行权限。我的问题是这个..
- 哪个用户需要执行权限?是数据库连接指定的用户还是网站通过 IIS 运行的用户?
- 大多数用户不会出现此错误。它似乎只发生在少数上传文件的用户身上。如果问题是权限问题不应该发生在所有用户身上吗?
【问题讨论】:
-
配置中的用户需要执行权限。可能是负载平衡服务器之一具有不同的用户名。当客户端点击该特定服务器时,他们可能会收到此错误。
-
我一直在尝试自己重现该错误,但我无法做到。我已经在网络内部和网络外部进行了测试。我尝试了不同的浏览器/操作系统组合,但无法重现错误。
-
webworm:需要在连接字符串中给用户执行权限。 @BhasyakaruluKottakota 这是asp-classic,而不是asp.net。
-
如果存储过程需要将数据插入到其所在数据库以外的其他数据库中,执行该存储过程的用户是否需要对不同数据库的插入权限?
-
@Paul .. 如果您将您的评论变成答案,我会接受。
标签: sql-server iis stored-procedures asp-classic database-permissions