web-dev-qa-db-fra.com

SQL Server: quel rôle accorde l'autorisation d'exécuter toutes les procédures stockées?

Quel appartenance à un rôle de base de données accorde l'autorisation d'exécuter toutes les procédures stockées existantes dans SQL Server 2012?

J'ai essayé d'ajouter un utilisateur à chacun d'eux et je ne parviens toujours pas à exécuter une procédure stockée. Je ne veux pas accorder EXECUTE pour chaque procédure stockée séparément, je veux ajouter l'utilisateur à un rôle et il pourra exécuter n'importe lequel d'entre eux.

8
Hikari

Si vous utilisez des schémas autres que le schéma dbo par défaut, créez un rôle de base de données par schéma et accordez EXECUTE sur le schéma au rôle.

par exemple. Pour le schéma dbo par défaut:

CREATE ROLE role_exec_dbo
GO
GRANT EXECUTE ON SCHEMA::dbo to role_exec_dbo
GO

Pour un nouveau schéma:

CREATE SCHEMA mySchema
GO
CREATE ROLE role_exec_mySchema
GO
GRANT EXECUTE ON SCHEMA::mySchema to role_exec_mySchema
GO

Aucun par défaut.

Créez un nouveau rôle et accordez-lui l'exécution. Cela devrait également couvrir les proc stockés créés à l'avenir.

5
Kevin3NF