执行包含删除查询的存储过程的用户是不是需要删除权限?

Posted

技术标签:

【中文标题】执行包含删除查询的存储过程的用户是不是需要删除权限?【英文标题】:Does the user who executes a stored procedure which contains a delete query need delete permission?执行包含删除查询的存储过程的用户是否需要删除权限? 【发布时间】:2012-09-14 15:15:33 【问题描述】:

或者只有在执行不是存储过程的查询时才需要授予他们从表中删除记录的权限?

【问题讨论】:

【参考方案1】:

执行包含删除查询的存储过程的用户是否需要删除权限?

不,这就是您可以将此类操作抽象为存储过程的原因之一。 所有用户需要的是对存储过程授予的EXEC 权限。这是因为假定存储过程的作者只允许从表中删除记录的有效情况。

只有在执行不是存储过程的查询时才需要授予他们从表中删除记录的权限

对,他们需要对表具有DELETE 权限才能使用DELETE DML 操作删除记录。

【讨论】:

在 SQL Server 中,如果存储过程的所有者也是表的所有者,则为 true。请参阅所有权链接。

以上是关于执行包含删除查询的存储过程的用户是不是需要删除权限?的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 存储过程 使用事务,说明在下边,求大神指教!

存储过程权限和执行

MySQL存储过程查询和删除的问题

27-SQLServer系统扩展存储过程

使用对存储过程具有执行权限的 SQL 用户插入 SQL 动态查询

oracle 在存储过程中用动态sql创建序列为何会遇到权限不足的问题呢?