65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.58/5 (11投票s)

2004年1月15日

viewsIcon

83134

downloadIcon

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 即可自动化授权过程。

© . All rights reserved.