La commande suivante donne-t-elle effectivement à l'utilisateur, "MyUser", le droit d'exécuter TOUTES les procédures stockées dans la base de données?
GRANT EXECUTE TO [MyDomain\MyUser]
La commande suivante donne-t-elle effectivement à l'utilisateur, "MyUser", le droit d'exécuter TOUTES les procédures stockées dans la base de données?
GRANT EXECUTE TO [MyDomain\MyUser]
SQL Server 2005 a introduit la possibilité d' octroi de la base de données des autorisations d'exécution à un principe de base de données, comme vous l'avez décrit:
GRANT EXECUTE TO [MyDomain\MyUser]
Qui accorde l'autorisation à la base de données étendue, qui comprend implicitement toutes les procédures stockées dans tous les schémas. Cela signifie que vous n'avez pas explicitement d'accorder des autorisations par la procédure stockée.
Vous pouvez également limiter la recherche par l'octroi de schéma autorisations d'exécution si vous voulez être plus précis:
GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
Outre les réponses ci-dessus, je tiens à ajouter:
Vous pourriez accorder à un rôle à la place, puis attribuer le rôle de l'utilisateur(s).
CREATE ROLE [myAppRights]
et GRANT EXECUTE TO [myAppRights]
le fait.
GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
fonctionne aussi, si vous voulez le faire sur le schéma.
De cette façon, vous n'avez qu'à le faire une fois et peut affecter/ou de révoquer les droits d'application facilement à partir d'un utilisateur si vous avez besoin de changer cela plus tard sur - particulièrement utile si vous souhaitez créer plus complexe des profils d'accès.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.