存储过程的 MS-SQL 权限

Posted

技术标签:

【中文标题】存储过程的 MS-SQL 权限【英文标题】:MS-SQL permissions on stored Proc 【发布时间】:2021-07-21 01:55:59 【问题描述】:

可以在不授予表权限的情况下为存储过程授予“执行”权限。这意味着只授予用户执行存储调用的权限,而不是其他权限。

这是我今天的面试问题。我说“是”,但面试的人说我错了。我只是想确定一下,以便我可以通过电子邮件回复正确的答案。感谢您的帮助!

【问题讨论】:

可以。查看sommarskog.se/grantperm.html 以获得全面的描述。 @Dale K!固定的。是的,这是一个自动更正的错误:) 【参考方案1】:

是的。你可以这样做。您必须简单地将存储过程的 EXECUTE 权限授予用户。

GRANT EXECUTE ON schemaName.StoredProcedureName TO UserName

【讨论】:

仅授予执行过程的访问权限而不访问表是否可以工作? 这是我的问题。将存储的调用将返回错误!请有人在 MS SQL 环境中进行测试。谢谢! @SowmyadharGourishetty,是的。它会起作用的。我之前已经测试过了。对于非特权用户,如果您授予对存储过程的执行权限,它将允许他对他无权访问的表进行操作。

以上是关于存储过程的 MS-SQL 权限的主要内容,如果未能解决你的问题,请参考以下文章

添加新的 Join 语句后 MS-SQL 存储过程引发错误。消息 102,级别 15,状态 1,第 279 行“WHERE”附近的语法不正确

MS SQL 和 Java:在调用存储过程期间找不到表变量

oracle 存储过程 权限问题 PL/SQL: ORA-01031: 权限不足

我可以将 pyodbc executemany 与 sql 存储过程一起使用吗?

oracle存储过程基本语法

存储过程权限和执行