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

SQL Oracle Discussion :

Création trigger delete : ORA-01031 : privilèges insuffisants


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut Création trigger delete : ORA-01031 : privilèges insuffisants
    Bonjour

    J'ai cherché une réponse à ma questions dans l'historique mais sans succès. J'espère que quelqu'un pourra me proposer d'éventuelles solutions.

    J'ai 2 schémas de base de donnée Oracle. Certaines données sont redondantes et donc présentes dans les 2 schémas. Les triggers sont utilisés pour maintenir la cohérence des données.

    Pour chaque action insert/update/delete sur mon schéma1 j'ai donc un trigger qui s'exécute pour mettre à jour mon schéma2.

    En ce qui concerne les insert et update, je n'ai aucun problème. Mes triggers se créent sans erreur et s'exécutent correctement.

    Problème : Le trigger contenant l'instruction delete pose problème. Lorsque j'essaye de le créer j'ai le message suivant :

    LINE/COL ERROR
    -------- -------------------------------------------------
    3/65530 PL/SQL: SQL Statement ignored
    4/9 PL/SQL: ORA-01031: privilèges insuffisants
    Le problème vient de l'instruction 'DELETE FROM ...'. Il semble que je n'ai pas les droits pour l'exécuter. Pourtant, si je ne connecte sur mon schéma1 et que j'exécute :
    DELETE FROM SCHEMA2.MATABLE WHERE MATABLE_ID = 1
    cela fonctionne bien.
    Mon utilisateur "SCHEMA1" a donc bien le droit de faire des suppression (DELETE) sur mon schéma2. Pourtant, une fois la requête encapsulée dans un trigger ... cela ne passe plus.

    Auriez vous une idée au sujet de ce problème.
    J'ai cherché dans les droits liés aux triggers mais je n'ai rien trouvé.

    Si vous voulez des précision, n'hésitez pas.

    Merci pour votre lectures et vos éventuelles suggestions.

    Wu

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut
    est ce que en te connectant sur le schema1 et en executant cette requete , il y'a succes ou echec ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete schema2.matable where 1=0;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    Citation Envoyé par shan08 Voir le message
    est ce que en te connectant sur le schema1 et en executant cette requete , il y'a succes ou echec ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete schema2.matable;
    Hello

    Oui, cela fonctionne.
    J'ai édité mon premier message pour corriger l'erreur : En me connectant sur le schéma1 et en exécutant la requete :
    DELETE FROM SCHEMA2.MATABLE WHERE XXX
    cela fonctionne correctement

    Wu

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut
    ok je vois
    mais est ce ke tu peux nous ecrire le code de ton trigger?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    CREATE OR REPLACE TRIGGER SCHEMA1.MON_TRIGGER AFTER
    DELETE
    ON SCHEMA1.MA_TABLE FOR EACH ROW
    BEGIN
    DELETE
    SCHEMA2.MA_TABLE
    WHERE
    ID = :NEW.ID;
    END;
    /
    Voila le code ... rien de bien compliqué!

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si votre table est sur SCHEMA1, qu'elle possède un trigger sur SCHEMA2 mais qu'elle est appellée par SCHEMA3 (un compte de service, un compte dédié aux alimentations...), il faut donner les droits à SCHEMA3.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut
    Citation Envoyé par Wutintin31 Voir le message
    Voila le code ... rien de bien compliqué!
    bon je crois pas ke ton trigger puisse marcher .
    le terme :new n'a aucun sens dans un trigger after delete
    utilise plutot :old.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ORA-01031: privilèges insuffisants
    Par Sabact dans le forum SQL
    Réponses: 7
    Dernier message: 02/07/2018, 17h20
  2. Réponses: 9
    Dernier message: 28/10/2010, 16h48
  3. ORACLE 9i : ORA-01031: privilèges insuffisants
    Par isn44 dans le forum Débuter
    Réponses: 2
    Dernier message: 11/03/2010, 13h27
  4. ORA-01031: privilèges insuffisants
    Par jadey dans le forum Oracle
    Réponses: 1
    Dernier message: 19/10/2009, 11h19
  5. ORA-01031 : privilèges insuffisants
    Par bencot dans le forum Administration
    Réponses: 0
    Dernier message: 10/07/2008, 17h04

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