【发布时间】:2010-09-30 13:16:08
【问题描述】:
我遇到了一个问题,即在 SQL Server 2005 中授予对特定存储过程的 EXECUTE 权限不起作用。一些测试人员弄乱了权限 - 并发现如果他们还授予存储过程的 CONTROL 权限 - 那么它运行良好。他们现在确信授予 CONTROL 权限是可行的方法。
我知道这不可能是真的——事实上我认为真正的问题是用户没有选择/插入/更新/删除存储过程所针对的表的权限。问题是,我似乎在网上找不到任何可以证明这一点的东西。
我说的对吗?有人知道任何有关此的文档吗?
提前致谢。
回复 cmets 的更多信息: 存储过程正在执行多次删除。它首先删除将被删除的“主”记录孤立的所有记录,然后最后删除父记录。
此外,我们看到的错误表明用户没有足够的权限 - 或者存储过程不存在。我们已经确认我们使用了正确的用户,并且已向该用户授予 EXECUTE 权限。
【问题讨论】:
-
如果你给一个存储过程的执行权限,它可以做所有它想要的插入、更新和删除。你需要告诉我们这个 sp 还在做什么。
-
哦,是的......对此感到抱歉。存储过程正在执行多次删除。它首先删除将被删除的“主”记录孤立的所有记录,然后最后删除父记录。
-
另外,我们看到的错误表明用户没有足够的权限——或者存储过程不存在。我们已经确认我们使用的是正确的用户,并且已向该用户授予 EXECUTE 权限。
标签: sql sql-server sql-server-2005 permissions controls