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

J'ai un script qui crée une database, procs stocké, vues, tables, UDF. Je veux inclure un script pour créer un user 'user_1' et donner l'autorisation d'exécution sur la database.

J'ai essayé de créer une command grant exec pour tous les process stockés

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 resoudre ceci?

Créer une connection: crée la connection au niveau du server. Ensuite … Créer un user: permet au count de connection de se connecter à votre database. Ensuite … Grant Execute To: octroie des droits d'exécution sur TOUS les sp's et les fonctions de votre db. Utilisez "Grant Execute ON abc TO xyz" si vous souhaitez uniquement accorder des droits à des sps spécifiques.

 Create login abacadaba with password='ABVDe12341234'; Create user abacadaba for login abacadaba; Grant Execute to abacadaba; 

As-tu essayé:

 CREATE LOGIN TestUser WITH PASSWORD = 'TopSecret' GRANT EXEC ON MyStoredProc TO TestUser 

vous pouvez également "CRÉER UN UTILISATEUR" si c'est ce que vous voulez.

Avait exactement le même problème que l'user original, mais pour moi c'était de mauvais caractères incorporés dans le TSQL – je devine de n'importe quelle source il a été coupé et collé.

De toute façon, en fonction de la quantité d'espace que vous avez, il suffit de supprimer les espaces entre les mots et de les replace par des espaces réguliers.

Essayez toutes les autres réponses avant cela, c'est assez improbable – je ne fais qu'append car il était si frustrant d'avoir 2 lignes de TSQL qui semblaient identiques les unes au-dessus des autres, mais qui résultaient en des messages de résultats différents. …

MISE À JOUR: les caractères incorrects ont été collés à partir de Microsoft Lync