t-sql create user et grant execute sur permission pour les procédures stockées

J'ai un script qui crée une base de données, stockées procs, des vues, des tables, des udf. Je veux inclure un script pour créer un utilisateur 'user_1", et donner l'autorisation d'exécuter la base de données.

J'ai essayé de suivre pour créer subvention commande exec pour tous les procs

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)

Mais exec (@permission) ne fonctionne pas. Il donne

syntaxe incorrecte près de ';'.

Comment puis-je résoudre ce problème?

source d'informationauteur stackoverflowuser