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

 Oracle Discussion :

Grant on Trigger


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 10
    Points
    10
    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
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 10
    Points
    10
    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
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    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

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

Discussions similaires

  1. Réponses: 10
    Dernier message: 23/01/2012, 17h27
  2. grant sur trigger
    Par looping dans le forum SQL
    Réponses: 1
    Dernier message: 09/12/2010, 21h20
  3. [power designer et Sybase] trigger
    Par mr_qno dans le forum Sybase
    Réponses: 4
    Dernier message: 12/07/2006, 18h32
  4. Gestion De Droits Grant Revoke
    Par donde dans le forum Informix
    Réponses: 5
    Dernier message: 15/01/2003, 11h59
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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