授予用户对所有过程的 Execute 权限






3.58/5 (11投票s)
2004年1月15日

83134

323
此存储过程向指定用户授予对所有过程的执行权限。
引言
为受限制的用户授予所有存储过程的执行权限可能是一个问题。但是,通过从 sysobjects 中检索元数据信息,一个简单的循环可以模拟此过程,并为指定用户授予所有可用存储过程的执行权限。
CREATE PROC grants as
declare curse cursor for select name from sysobjects where type='P'
OPEN CURSE
declare @proc varchar(100)
declare @stmt nvarchar(200)
fetch next from curse into @proc
while @@fetch_status=0 
begin
set @stmt='grant execute on '+@proc+' to bnbuser'
exec SP_EXECUTESQL @STMT
print @stmt
fetch next from curse into @proc
end
close curse
deallocate curse
GO
编译后,只需在查询分析器中输入 grants 即可自动化授权过程。
