2011-07-25 2 views
2

Je cherche un moyen de permettre à un utilisateur de base de données d'avoir uniquement le droit d'exécuter des procédures et des fonctions stockées. Cela doit être un paramètre dynamique afin que chaque fois que j'ajoute une procédure stockée ou une fonction, ils ont des droits.Accorder uniquement les droits de procédure stockée pour un utilisateur

Contraintes Je ne peux pas modifier les noms du schéma ou des prcédures ou fonctions stockées.

Répondre

7

Dans SQL Server 2005 et plus récent, vous pouvez créer un nouveau rôle de base de données

CREATE ROLE db_executor 

puis accorder ce rôle l'autorisation d'exécuter - sans préciser quoi que ce soit.

GRANT EXECUTE TO db_executor 

Ce rôle peut désormais exécuter toutes les procédures stockées et fonction dans la base de données - et il sera en mesure d'exécuter des futures procédures stockées que vous ajoutez à la base de données, aussi!

tellement maintenant ajouter ce rôle à votre utilisateur et vous avez terminé:

exec sp_addrolemember @rolename = 'db_executor', @membername = 'your-user-name-here' 

PS: Bien sûr, vous pouvez également accorder cette autorisation à un seul utilisateur:

GRANT EXECUTE TO your-user-name 

Cela rend la gestion un cauchemar, cependant - donc je n'irais pas dans cette direction ..

Questions connexes