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

PL/SQL Oracle Discussion :

Droits / permissions d'exécution de UTL_FILE


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    chef de projet technique
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : chef de projet technique

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Par défaut Droits / permissions d'exécution de UTL_FILE
    Bonjour,

    j'ai besoin de faire un trigger sur une table lors du "DELETE", j'ai donc écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    create or replace trigger trg_del_APMFCQ
    before delete on APMFCQ
    for each row
    when ( old.CODDTQ = 'XVT')
     
    declare
            ID_FILE             UTL_FILE.FILE_TYPE;
            MODE_OPEN           CHAR(1) := 'A';
    begin
    ID_FILE := UTL_FILE.FOPEN('ora_log2','trg_del_APMFCQ.log',MODE_OPEN);
    UTL_FILE.PUT_LINE(ID_FILE, :old.CODDTQ || ' ' || :old.DATCRE || ' ' || :old.HEUCRE || ' ' || :old.VARDTQ);
    UTL_FILE.FCLOSE(ID_FILE);
     
    end ;
    /
    Mon rapport d'erreur est le suivant :

    create or replace trigger trg_del_APMFCQ
    before delete on APMFCQ
    for each row
    when ( old.CODDTQ = 'XVT')

    declare
    ID_FILE UTL_FILE.FILE_TYPE
    Rapport d'erreur -
    ORA-00990: privilège absent ou non valide
    00990. 00000 - "missing or invalid privilege"
    *Cause:
    *Action:
    Je précise que le directory Oracle (ORA_LOG2) est bien créé et existe dans ALL_DIRECTORY.

    j'ai également fait un "GRANT EXECUTE any procedure" sur mon user ...

    Je ne sais plus quoi faire

  2. #2
    Membre chevronné
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 395
    Par défaut
    Est-ce que tu peux le directory en majuscule et puis faire le grant directement sur le package UTL_FILE .

  3. #3
    Membre actif
    Homme Profil pro
    chef de projet technique
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : chef de projet technique

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SQL> create or replace directory ORA_LOG4 as '/softwares/tmpfb';
     
    Directory created.
     
    SQL> grant read,write on directory ORA_LOG4 to FGE50P087;
     
    Grant succeeded.
     
    SQL> 
    SQL> grant execute on UTL_FILE to FGE50P087;
     
    Grant succeeded.
     
     
    SELECT * FROM ALL_DIRECTORIES;
     
    SYS	ORA_LOG4	/softwares/tmpfb	0
    résultat :

    create or replace trigger trg_del_APMFCQ
    before delete on APMFCQ
    for each row
    when ( old.CODDTQ = 'XVT')

    declare
    ID_FILE UTL_FILE.FILE_TYPE
    Rapport d'erreur -
    ORA-00990: privilège absent ou non valide
    00990. 00000 - "missing or invalid privilege"
    *Cause:
    *Action:
    j'ai l'impression que mon user ne peut pas accéder au package UTL_FILE .. ??

    j'ai essayé de faire un execute du UTLFILE.sql dans /$ORACLE_HOME/ora19c/rdbms/admin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL>  @/softwares/app/ora19c/rdbms/admin/utlfile.sql
    ERROR:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-01031: insufficient privileges

    Package created.

    Grant succeeded.

    Synonym created.

    ERROR:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-01031: insufficient privileges

  4. #4
    Membre chevronné
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 395
    Par défaut
    Et si tu interrogeais la vue dba_tab_privs pour voir les privilèges de UTL_FILE ?

  5. #5
    Membre chevronné
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 395
    Par défaut
    J'ai oublié de t'indiquer si tu changeais la commande grant sur SYS.UTL_FILE

  6. #6
    Membre actif
    Homme Profil pro
    chef de projet technique
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : chef de projet technique

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Par défaut
    J'ai fait le Grant sur SYS.UTL_FILE => pareil

    le résultat sur dba_tab_privs where table_name = 'UTL_FILE' :
    PUBLIC SYS UTL_FILE SYS EXECUTE NO NO NO PACKAGE NO
    ORACLE_OCM SYS UTL_FILE SYS EXECUTE NO NO NO PACKAGE NO
    WMSYS SYS UTL_FILE SYS EXECUTE NO NO NO PACKAGE NO
    FGE50P087 SYS UTL_FILE SYS EXECUTE NO NO NO PACKAGE NO
    PUBLIC FGE50P087 UTL_FILE FGE50P087 EXECUTE NO NO NO PACKAGE NO

Discussions similaires

  1. Permission d'exécution sur une job
    Par DEV-10 dans le forum Outils
    Réponses: 6
    Dernier message: 18/08/2009, 16h23
  2. [JpGraph] Problème droit permission d'écriture
    Par boniface dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 22/03/2007, 14h34
  3. Problème de droit : permission non accordée
    Par shadowman69 dans le forum Administration système
    Réponses: 1
    Dernier message: 02/06/2006, 14h58
  4. SQL Server comprendre roles, logins, schemas, droits, permissions
    Par nokiariver dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/06/2006, 08h07
  5. click-droit sur un exécutable
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2005, 14h49

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