La commande suivante donne-t-elle effectivement à l'utilisateur, «MyUser», l'autorisation 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», l'autorisation d'exécuter TOUTES les procédures stockées dans la base de données?
GRANT EXECUTE TO [MyDomain\MyUser]
SQL Server 2008 et supérieur:
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
Pour juste un utilisateur (pas un rôle):
USE [DBName]
GO
GRANT EXECUTE TO [user]
user
devrez peut-être être entre crochets. C'était vrai dans mon cas d'utilisation au moins en partie parce que mon utilisateur avait un domaine attaché (c'est-à-dire qu'il y avait un caractère \). edit: correction du caractère slash nonSQL Server 2005 a introduit la possibilité d' accorder des autorisations d'exécution de base de données à un principe de base de données, comme vous l'avez décrit:
Cela accordera une autorisation au niveau de l'étendue de la base de données, qui inclut implicitement toutes les procédures stockées dans tous les schémas. Cela signifie que vous n'êtes pas obligé d'accorder explicitement des autorisations par procédure stockée.
Vous pouvez également restreindre en accordant des autorisations d'exécution de schéma si vous souhaitez être plus précis:
la source
En plus des réponses ci-dessus, j'aimerais ajouter:
Vous souhaiterez peut-être attribuer cela à un rôle à la place, puis attribuer le rôle aux utilisateurs. Supposons que vous ayez créé un rôle
myAppRights
viaalors vous pouvez donner des droits d'exécution via
à ce rôle.
Ou, si vous souhaitez le faire au niveau du schéma:
fonctionne également (dans cet exemple, le rôle
myAppRights
aura des droits d'exécution sur tous les éléments du schémadbo
par la suite).De cette façon, vous ne devez le faire qu'une seule fois et pouvez facilement attribuer / révoquer tous les droits d'application associés à / d'un utilisateur si vous avez besoin de changer cela plus tard - particulièrement utile si vous souhaitez créer des profils d'accès plus complexes.
Remarque: si vous attribuez un rôle à un schéma, cela affecte également les éléments que vous aurez créés ultérieurement - cela peut être bénéfique ou non en fonction de la conception souhaitée, alors gardez cela à l'esprit.
la source
GRANT EXECUTE TO [ROLE]
Celui-ci aide sûrement
la source