一尘不染

如何授予单个存储过程的执行权限?

sql-server

通常,当我创建存储过程时,我使用以下作为排序模板

Create procedure <procedurename>
<@param1 <type>, @param2 <type>, etc..> 
as begin

 <procedure>

end

有没有办法在我使用该存储过程时包括仅授予对该存储过程的执行权限?
比如像…

Grant execute [User_Execute] 

…但仅适用于这个存储过程?

我见过其他一些类似的问题,但它们似乎都指的是所有存储过程,而不仅仅是一个,我也没有见过一个可以在create procedure脚本内部指定权限的问题。甚至关于如何在没有 GUI 的情况下为特定存储过程设置权限的答案也将受到欢迎。

编辑 最佳答案无疑为我指明了正确的方向,这基本上就是我一直在寻找的东西,我没有考虑批处理我最终要做的命令,将命令与我的存储过程一起批处理。无论如何,我认为它非常光滑。

Create procedure <procedurename>
<@param1 <type>, @param2 <type>, etc..> 
as begin

<procedure>

end
GO
GRANT EXECUTE ON <procedurename> to <username>
GO

阅读 88

收藏
2022-11-03

共1个答案

一尘不染

GRANT EXECUTE ON dbo.procname TO username;
2022-11-03