SQL用户只能运行proc,但该proc可以执行任何操作

时间:2008-10-24 13:29:24

标签: sql-server stored-procedures permissions

在SQL Server 2005中,我希望一个名为LimitedUser的用户只能运行一个proc: 授权执行[usp_RunETL]至[LimitedUser]

但是,proc需要能够做所有事情 - 更新,删除,插入,执行......一切。如何在不必将所有权限授予LimitedUser的情况下执行此操作?

2 个答案:

答案 0 :(得分:3)

LimitedUser只需要运行sproc的权限。他们不需要任何其他权限。

答案 1 :(得分:0)

您只需向受限用户授予EXEC EXEC。只要用户具有存储过程的权限,它就会忽略/覆盖过程内部操作的权限。

我会非常小心这样做,这听起来像是一个很大的潜在安全漏洞。通常,您将使用多个过程来灵活地根据需要调整权限。我建议为过程或基础表和视图分配权限,而不是决定只有一个 super 过程。