IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Liste des procédures stockées pour un role donné


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Liste des procédures stockées pour un role donné
    Bonjour,
    J'aimerai savoir comment récupérér la liste des procédures stockées auxquelles un role est associé?

    Merci de votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Un rôle n'est pas associé à des objets de base de données.
    Un rôle a des privilèges sur des objets de la base de données.
    Donc je ne sais pas si vous n'auriez pas confondu la notion de rôle avec la notion de schéma.

    Vous pouvez vous servir de la requête ci-dessous pour trouver les privilèges de tous les rôles de votre base de données sur tous les objets pour lesquels ils ont un privilège :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT		DP.permission_name
    		, P.name AS procedure_name
    		, DPR.name AS role_name
    FROM		sys.database_permissions AS DP
    INNER JOIN	sys.procedures AS P ON DP.major_id = P.object_id
    INNER JOIN	sys.database_principals AS DPR ON DPR.principal_id = DP.grantee_principal_id
    Vous aurez probablement besoin d'une clause WHERE DPR.name = 'monRole'

    @++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Un rôle n'est pas associé à des objets de base de données.
    Un rôle a des privilèges sur des objets de la base de données.
    Donc je ne sais pas si vous n'auriez pas confondu la notion de rôle avec la notion de schéma.

    Vous pouvez vous servir de la requête ci-dessous pour trouver les privilèges de tous les rôles de votre base de données sur tous les objets pour lesquels ils ont un privilège :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT		DP.permission_name
    		, P.name AS procedure_name
    		, DPR.name AS role_name
    FROM		sys.database_permissions AS DP
    INNER JOIN	sys.procedures AS P ON DP.major_id = P.object_id
    INNER JOIN	sys.database_principals AS DPR ON DPR.principal_id = DP.grantee_principal_id
    Vous aurez probablement besoin d'une clause WHERE DPR.name = 'monRole'

    @++
    Merci pour votre réponse.
    Ca correspond à ce que je souhaitais.
    Afin d'affiner ma requete, est-il possible de limiter aux procdures stockées custom?

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Il me semble que cette requête ne retourne que les privilèges sur les objets créés par l'utilisateur.
    Avez-vous un exemple où ce n'est pas le cas ?

    @++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Il me semble que cette requête ne retourne que les privilèges sur les objets créés par l'utilisateur.
    Avez-vous un exemple où ce n'est pas le cas ?

    @++
    la requete ressort les procedures telles que par exemple sp_helpdiagramdefinition ou dt_addtosourcecontrol avec le role public ou guest

    Au final, je filtre avec mon role. Du coup, je n'ai que des proc custom.

    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Obtenir une liste des jours fériés pour une année donnée
    Par metallica2 dans le forum Contribuez
    Réponses: 1
    Dernier message: 20/02/2014, 12h29
  2. Liste des procédures stockées utilisant un table
    Par paf84 dans le forum Administration
    Réponses: 5
    Dernier message: 06/04/2010, 12h28
  3. liste des procédures stockées
    Par schwarzy2 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 24/03/2009, 17h55
  4. Liste des procédures stockées d'une base de données
    Par Delphi-ne dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/03/2008, 19h31
  5. Réponses: 5
    Dernier message: 04/10/2004, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo