Réponses:
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 non
SQL 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:
GRANT EXECUTE TO [MyDomain\MyUser]
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:
GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
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
via
CREATE ROLE [myAppRights]
alors vous pouvez donner des droits d'exécution via
GRANT EXECUTE TO [myAppRights]
à ce rôle.
Ou, si vous souhaitez le faire au niveau du schéma:
GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
fonctionne également (dans cet exemple, le rôle myAppRights
aura des droits d'exécution sur tous les éléments du schéma dbo
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.
GRANT EXECUTE TO [ROLE]
Celui-ci aide sûrement