t-sql创建用户并授予对存储过程的权限执行权限

sta*_*ser 10 sql t-sql sql-server sql-server-2008

我有一个脚本,它创建一个数据库,存储过程,视图,表,udf.我想要包含一个脚本来创建用户'user_1'并为数据库授予执行权限.

我尝试了为所有存储过程创建grant exec命令

declare @permission varchar(max)

select @permission = COALESCE(
    @permission + '; ' + 'Grant Execute on ' + name +  ' user_1', 
   'Grant Execute on ' + name +  ' user_1')
from sysobjects where xtype in ('P')

exec (@permission)
Run Code Online (Sandbox Code Playgroud)

但是exec (@permission)不起作用.它给

';'附近的语法不正确.

我怎么解决这个问题?

Bil*_*ill 24

创建登录:创建服务器级登录.然后...创建用户:让登录帐户附加到您的数据库.然后... Grant Execute To:授予数据库中所有sp和函数的执行权限.如果您只想授予特定sps的权限,请使用"授予执行ON abc TO xyz".

Create login abacadaba with password='ABVDe12341234';
Create user abacadaba for login abacadaba;
Grant Execute to abacadaba;
Run Code Online (Sandbox Code Playgroud)