2009-07-31 7 views
2

Je dois donner des permissions en lecture seule à quelques utilisateurs de la base de données pour qu'ils puissent comprendre le schéma, la logique des SP, etc. Mais je ne veux pas qu'ils modifient quoi que ce soit. J'ai essayé d'assigner le rôle db_datareader mais cela ne permet pas de voir le nom ou le code du SP. Quelle est la bonne combinaison de rôles pour cela ou dois-je écrire un script T-SQL pour y parvenir?Dans SQL Server, comment accorder uniquement l'autorisation "lecture seule" à tous les objets de base de données?

Répondre

3

En supposant que vous souhaitez accorder le droit de voir tout sous le schéma dbo:

GRANT VIEW DEFINITION ON schema::dbo TO [UserName] 
+0

Will qui permettent la sélection d'enregistrements de tables? Ou vouliez-vous dire un db_DataReader + cette option GRANT? – Faiz

+0

Si vous souhaitez que les utilisateurs sélectionnent également des données, vous devez émettre l'instruction fournie avec DataReader. –

+0

Notez également que mon utilisation de GRANT VIEW DEFINITION n'est qu'un exemple, vraiment. Je suggère de lire cette commande dans la documentation en ligne de SQL pour l'utiliser avec un niveau de portée différent, si nécessaire. –

0

Je crois que vous devrez écrire un script TSQL pour accorder la vue sur les SP. DB_DataReader donne seulement l'accès en lecture aux tables d'utilisateur; il n'inclut aucun autre droit. Et je ne connais pas de rôle de base de données ou de rôle de serveur inclus qui fera ce que vous demandez.

Questions connexes