Quel niveau d'access SQL Server est requirejs pour afficher, mais pas exécuter, les procédures stockées et leur code?

On m'a accordé l'access à db_datareader à notre database SQL Server de production, mais ils m'ont également accordé l'autorisation denywrite , par mesure de security pour m'assurer que je ne peux absolument pas interrompre nos services au cours de mes enquêtes.

Cependant, je constate que je ne peux pas voir nos procédures stockées – la list semble vide.

Nous devrions avoir des centaines de procédures stockées dans notre environnement de production, donc je suis perplexe quant à la raison pour laquelle elles n'apparaissent pas dans l'explorateur d'objects.

Notre gestionnaire d'infrastructure m'a accordé les droits, mais il ne sait rien sur SQL Server, donc la direction m'a demandé de l'aider à déterminer quelles sont les permissions SQL Server dont j'ai besoin, puisque je suis le développeur.

J'ai donc besoin de savoir ce qui me manque ici – j'ai supposé que db_datareader me laisserait voir tout, y compris les procédures stockées et les métadonnées, mais apparemment je me suis trompé. 🙂

Certes, je ne suis pas le plus compétent en matière de permissions. Cependant, je crois que la permission minimum dont vous avez besoin ici est la view definition . Vous pouvez également accorder cette autorisation à un rôle si cela a plus de sens pour votre situation.

 use MyDB GO GRANT VIEW DEFINITION to MyUser 

Ce qui précède accordera view_definition à MyUser pour la database MyDB .

La modification de ce qui suit permettra d'get une view definition sur n'importe quelle database:

 use master GO GRANT VIEW ANY DEFINITION to MyUser 

Sources:

https://msdn.microsoft.com/en-us/library/ms345443.aspx#Security http://www.mssqltips.com/sqlservertip/1593/granting-view-definition-permission-to-a-user-ou -role-in-sql-server /