【问题标题】:Classic ASP - Which user needs execute permissions granted for stored procedure经典 ASP - 哪些用户需要为存储过程授予执行权限
【发布时间】: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 看来,我似乎需要授予此特定存储过程的执行权限。我的问题是这个..

  1. 哪个用户需要执行权限?是数据库连接指定的用户还是网站通过 IIS 运行的用户?
  2. 大多数用户不会出现此错误。它似乎只发生在少数上传文件的用户身上。如果问题是权限问题不应该发生在所有用户身上吗?

【问题讨论】:

  • 配置中的用户需要执行权限。可能是负载平衡服务器之一具有不同的用户名。当客户端点击该特定服务器时,他们可能会收到此错误。
  • 我一直在尝试自己重现该错误,但我无法做到。我已经在网络内部和网络外部进行了测试。我尝试了不同的浏览器/操作系统组合,但无法重现错误。
  • webworm:需要在连接字符串中给用户执行权限。 @BhasyakaruluKottakota 这是asp-classic,而不是asp.net
  • 如果存储过程需要将数据插入到其所在数据库以外的其他数据库中,执行该存储过程的用户是否需要对不同数据库的插入权限?
  • @Paul .. 如果您将您的评论变成答案,我会接受。

标签: sql-server iis stored-procedures asp-classic database-permissions


【解决方案1】:

webworm - 非常感谢。

需要在连接字符串中给用户执行权限。

操作数据库的用户是连接字符串中提到的用户。当然,可以为应用程序的不同部分使用多个连接字符串,链接到许多不同的数据库,尽管这可能成为管理的噩梦。我建议在 global.asa 中创建所有连接字符串,并将 SQL 用户帐户限制为尽可能少。让同一个帐户访问同一服务器上的多个数据库更容易...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多