|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juin 2005 Messages : 18 ![]() |
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. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : décembre 2002 Messages : 2 653 ![]() |
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 : Mais est-ce que PL/SQL DEvelopper l'utilise...
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juin 2005 Messages : 18 ![]() |
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. |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : décembre 2002 Messages : 2 653 ![]() |
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 |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com