2010-08-20 7 views

Répondre

37

Accorde-leur VIEW DEFINITION privilège de ces procs, voir ici http://msdn.microsoft.com/en-us/library/ms175808.aspx

Il est

  • étendue du serveur

  • champ de base de données

  • étendue de schéma

  • Entités individuelles

Vous pouvez également utiliser une requête pour générer un script. donc si vous avez un utilisateur Bob

select 'GRANT VIEW DEFINITION ON ' + quotename(specific_schema) 
+ '.' + quotename(specific_name) 
+ ' TO ' + 'BOB' 
    from INFORMATION_SCHEMA.routines 
where routine_type = 'PROCEDURE' 

Cela vous donnera quelque chose comme ça, que vous pouvez ensuite exécuter

GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO BOB 
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO BOB 
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO BOB 
+1

Existe-t-il des alternatives à la configuration par procédure stockée? J'espérais une méthode qui n'exigeait pas que chaque proc soit modifié. – adam0101

+0

voir la mise à jour – SQLMenace

+0

Génial. Merci – adam0101

7

Exemple de faire au niveau de la portée du schéma de dbo.

vue subvention définition sur le schéma :: [dbo] BOB

MSDN

4

je avais besoin d'accorder l'accès à un compte de domaine .. syntaxe pour c'était

définition de la vue de la subvention sur le schéma: : [dbo] pour "domaine \ BOB"

0

Ma variante pour toutes les procédures de db:

select 'GRANT VIEW DEFINITION ON [' + schema_name(schema_id) + '].[' + name + 
     '] TO ' + '[domain\username]' 
    from sys.all_objects 
where type_desc = 'SQL_STORED_PROCEDURE' 
    and schema_id <> schema_id('sys') 
0

Bien que je sais que ce soit en retard en réponse à la question, mais pour les personnes qui sont venues ici pour chercher une réponse (comme je l'ai fait il y a quelques minutes) dans SQL Management Studio 2014, vous pouvez modifier le compte utilisateur. modifiez les autorisations dans la zone SECURABLES et cochez toutes les cases dans VIEW auxquelles vous voulez qu'elles aient accès.

Cela se fait sans devoir exécuter des scripts.

Questions connexes