Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > Débuter
Débuter Forum d'entraide pour débuter avec Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/08/2012, 18h19   #1
djtoph
Invité régulier
 
Inscription : juin 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 18
Points : 5
Points : 5
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.
djtoph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2012, 13h39   #2
Pomalaix
Rédacteur
 
Inscription : décembre 2002
Messages : 2 653
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 653
Points : 4 127
Points : 4 127
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 10g et 11g, sécurité 11g
Pomalaix est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/08/2012, 14h39   #3
djtoph
Invité régulier
 
Inscription : juin 2005
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 18
Points : 5
Points : 5
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.
djtoph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2012, 14h51   #4
Pomalaix
Rédacteur
 
Inscription : décembre 2002
Messages : 2 653
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 653
Points : 4 127
Points : 4 127
Alors il faut demander à votre DBA de vous donner le droit sur DBA_TRIGGERS.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h21.


 
 
 
 
Partenaires

Hébergement Web