为其中的存储过程和操作授予权限

时间:2016-04-29 13:31:10

标签: sql-server sql-server-2014

我已经创建了一些存储过程,我试图在Web应用程序中执行它们。为了保证安全性,我创建了SQL Server用户,登录角色和权限。

然后,我授予规则的执行权限,并将该规则提供给特定用户。我的问题是,例如,如果我将StoredProcedureA的执行授予roleAStoredProcedureA使用表格上的选择,我就会收到错误

  

对象'[tableA]'

上的SELECT权限被拒绝

错误很容易修复:我必须在该表上授予select。

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

由于

1 个答案:

答案 0 :(得分:0)

您可以更改您的程序以包含EXECUTE AS条款吗?

示例:

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

这将允许您仅授予您的用户和角色执行程序的能力,但是程序能够执行所需的操作,包括选择,插入,更新等。