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 ';'.
- Est-il plus rapide de vérifier qu'une date n'est pas (NULL) ou de comparer un bit à 1/0?
- Requête pour find toutes les contraintes FK et leurs règles de suppression (SQL Server)
- SQL pour Oracle pour vérifier si une contrainte existe
- Problème de ligne d'insertion en bloc
- Meilleure façon de stocker les anciennes dates dans SQL Server
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