GRANT EXECUTE à toutes les procédures stockées

La commande suivante donne-t-elle à l’utilisateur “MyUser” l’autorisation d’exécuter TOUTES les procédures stockées dans la firebase database?

GRANT EXECUTE TO [MyDomain\MyUser] 

SQL Server 2008 et ci-dessus:

 /* 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] 

SQL Server 2005 a introduit la possibilité d’ accorder des permissions d’exécution de firebase database à un principe de firebase database, comme vous l’avez décrit:

 GRANT EXECUTE TO [MyDomain\MyUser] 

Cela autorisera la scope de la firebase database, qui inclut implicitement toutes les procédures stockées dans tous les schémas. Cela signifie que vous n’avez pas à accorder explicitement des permissions par procédure stockée.

Vous pouvez également limiter en accordant des permissions d’exécution de schéma si vous souhaitez être plus granulaire:

 GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser] 

En plus des réponses ci-dessus, j’aimerais append:

Vous voudrez peut-être accorder cela à un rôle à la place, puis atsortingbuer le rôle aux utilisateurs.

 CREATE ROLE [myAppRights] GRANT EXECUTE TO [myAppRights] 

est-ce que.

Si vous voulez 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 après).

De cette manière, il vous suffit de le faire une seule fois et d’atsortingbuer / révoquer facilement tous les droits d’application associés à un utilisateur si vous devez le modifier ultérieurement, en particulier si vous souhaitez créer des profils d’access plus complexes.

OCTROI EXÉCUTER AU PUBLIC

Celui-ci aide sûrement