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

SQL Oracle Discussion :

Extraction des droits utilisateurs sur un ERP à partir d'une base de données [11gR2]


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Extraction des droits utilisateurs sur un ERP à partir d'une base de données
    Bonjour,

    Je souhaite extraire les droits utilisateurs sur l'ERP que j'utilise à l'aide d'une requête SQL.

    Lorsqu'il y a un enregistrement dans la table qui associe une action à un utilisateur, alors celui-ci n'a pas le droit correspondant. Pour autant, à l'inverse, lorsque celui-ci n'a pas le droit, il n'y a pas d'enregistrement.

    Je dois faire une jointure externe entre la table des droits, des utilisateurs et des actions afin d'extraire pour chaque action qui a le droit ou non (je voudrai savoir qui n'a pas le droit de réaliser telle action).

    J'ai 3 tables:
    - la table qui associe les droits, les actions et les utilisateurs, right_user_xobj,
    - une table des utilisateurs, user,
    - une table des actions, xobject.

    La première table contient comme clés étrangères les clés primaires des 2 autres tables.

    J'ai essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     select sx1.label as action, su.name as utilisateur, decode(nvl(so.id_user_obj,0),0,'Oui','Non') as droit
    from right_user_xobj so
    right outer join xobject  sx1
    on so.id_sys_xobj = sx1.id_sys_xobject 
    right outer join topsys.sys_user su
    on so.id_sys_user = su.id_sys_user
    La requête ne restitue pas les autorisations des utilisateurs malgré les jointures externes.

    Merci d'avance.
    Julien.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je pense que vos jointures externes sont à l'envers.
    Changez les RIGHT OUTER JOIN en LEFT OUTER JOIN.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    J'ai codé ceci mais cela ne remonte que les enregistrements figurant dans la table qui associe les non-droits aux actions et aux utilisateurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select 
    sx1.label as action,
    decode(nvl(so.id_sys_user,0),0,'Oui','Non') as autorise,
    su.name
    from topsys.sys_right_user_xobj so
    left outer join  topsys.sys_xobject  sx1
    on so.id_sys_xobj  = sx1.id_sys_xobject 
    left outer join topsys.sys_user su
    on so.id_sys_user = su.id_sys_user
    Si je change les jointures en right outer join, cela ne change rien.

    Je souhaiterai avoir:
    Action A
    Utilisateur 1 Oui
    Utilisateur 2 Oui
    Utilisateur 3 Non
    Action B
    Utilisateur 1 Non
    Utilisateur 2 Non
    Utilisateur 3 Oui.

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

Discussions similaires

  1. [Google Maps] Affichage des marqueurs sur une carte à partir d'une base de donnée
    Par sigway dans le forum APIs Google
    Réponses: 16
    Dernier message: 22/10/2012, 18h49
  2. Reglage des droits utilisateur sur accès bdd sql
    Par zax-tfh dans le forum Administration
    Réponses: 4
    Dernier message: 06/01/2010, 15h26
  3. [FLASH 8] Afficher des images à partir d'une base de données
    Par developpeur_mehdi dans le forum Flash
    Réponses: 9
    Dernier message: 15/03/2006, 10h43
  4. Utiliser MySqlAdmin avec des droits utilisateurs sur XP
    Par thorgal85 dans le forum Outils
    Réponses: 2
    Dernier message: 18/03/2005, 12h19

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