【问题标题】:Grant permission to stored procedure and action inside it授予对存储过程和其中操作的权限
【发布时间】:2016-04-29 13:31:10
【问题描述】:

我创建了一些存储过程,并尝试在 Web 应用程序中执行它们。为了承受安全性,我创建了 SQL Server 用户、登录角色和权限。

然后我将执行权限授予该规则并将该规则授予特定用户。我的问题是,例如,如果我将StoredProcedureA 上的执行权限授予roleA 并且StoredProcedureA 在tableA 上使用选择,我得到了错误

对象“[tableA]”的 SELECT 权限被拒绝

错误很容易修复:我必须在该表上授予选择权限。

但由于我在项目中使用了许多程序,因此很难对每个程序进行修改。有没有办法配置 SSMS,以便如果我将执行过程授予角色,该角色将自动拥有对该过程中的操作(选择、插入、更新、删除)的所有权限?

谢谢

【问题讨论】:

    标签: sql-server sql-server-2014


    【解决方案1】:

    您能否更改您的程序以包含EXECUTE AS 子句?

    例子:

    ALTER PROCEDURE sprocName...
    EXECUTE AS dbo -- high level example
    ...
    

    这将允许您仅授予您的用户和角色执行程序的能力,但程序可以执行所需的操作,例如选择、插入、更新等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2020-03-16
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      相关资源
      最近更新 更多