Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Discussion: Grant on Trigger

  1. #1
    Invité régulier
    Inscrit en
    juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 18
    Points : 6
    Points
    6

    Par défaut Grant on Trigger

    Bonjour,
    je travaille actuellement sur un projet donc la sécurité est bancale et l'on me demande de refondre un partie de la sécurité en production.
    Je m'explique. Aujourd’hui, le user est du schéma contenant les données de Prod est : XX_ADM
    AUjourd'hui, tout le monde se connecte en production pour avoir des réponses à ses questions, et malheureusement,tout le monde a accès aux données en écriture.
    On me demande de créer un user oracle XX_CONSULT qui ait accès à tous les schémas de base (7 au total), mais seulement en lecture.
    J'ai donc procédé comme suit :
    grant SELECT ANY TABLE to XX_CONSULT;
    grant DEBUG ANY PROCEDURE to XX_CONSULT;
    celui fonctionne parfaitement avec les synonymes, les packages, les tables (les séquences ne m'intéressent pas).
    Cependant, j'ai toujours un problème avec les triggers.

    En effet, je n'arrive pas avec XX_CONSULT à accéder au code des triggers de XX_ADM.
    J'utilise PL/SQL DEvelopper et dans MyObjects/Trigger, pour chque trigger, j'ai le message suivant :
    "Properties of XX_ADM.TRG_MATABLE not available"

    Après avoir fouillé pas mal, je ne vois comment donner les droits en consultation à XX_CONSULT sur le triggers de XX_ADM.

    Si vous avez le solution, je suis preneur avec joie.
    Merci par avance.

  2. #2
    Expert Confirmé Sénior

    Profil pro
    Inscrit en
    décembre 2002
    Messages
    2 838
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : décembre 2002
    Messages : 2 838
    Points : 5 093
    Points
    5 093

    Par défaut

    Je ne sais pas dans quelle vue votre outil va chercher, probablement ALL_TRIGGERS.

    Or on constate à l'usage qu'on voit dans ALL_TRIGGERS les déclencheurs applicatifs :
    1) des tables dont on est le propriétaire
    2) des tables sur lesquelles on a un privilège SELECT direct (c'est à dire GRANT SELECT on TOTO.TABLE, et non pas SELECT ANY TABLE ni SELECT ANY DICTIONARY).

    Le privilège CREATE ANY TRIGGER aura pour effet de rendre tous les déclencheurs visibles dans ALL_TRIGGERS.

    Maintenant, il n'est pas souhaitable en général d'utiliser les privilèges de type ANY. Même si votre base est dédiée actuellement à vos 7 schémas, ce sera un problème si vous devez en ajouter un autre sur lequel vous ne devez pas avoir de droits. Ce sera aussi un problème si un jour vous devez installer ces schémas dans une base mutualisée.

    De plus, CREATE ANY TRIGGER permet à vos utilisateurs de créer des déclencheurs partout, ce qui n'est pas souhaitable j'imagine.

    Je pense que la solution présentant le moins d'inconvénients sera de donner le droit sur DBA_TRIGGERS :
    Code :
    grant select on DBA_TRIGGERS to xxx;
    Mais est-ce que PL/SQL DEvelopper l'utilise...
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

  3. #3
    Invité régulier
    Inscrit en
    juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 18
    Points : 6
    Points
    6

    Par défaut

    Bonjour,
    tout d'abord merci pour votre réponse.
    Concernant la politique du ANY TRIGGER, seul le user de production restera sur cette base et seulement lui, donc ici, pas de problème de base mutualisée.

    Concernant votre solution,
    GRANT SELECT ON DBA_TRIGGERS TO xxx;
    j'ai malheureusement un ORA-01031 : insufficient privileges.
    Je n'ai malheureusement les droits de connexion que sur les users applicatifs et sur un user parent SYSADM, mais qui ne possède pas les droits pour accéder à DBA_TRIGGERS.

  4. #4
    Expert Confirmé Sénior

    Profil pro
    Inscrit en
    décembre 2002
    Messages
    2 838
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : décembre 2002
    Messages : 2 838
    Points : 5 093
    Points
    5 093

    Par défaut

    Alors il faut demander à votre DBA de vous donner le droit sur DBA_TRIGGERS.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •