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

Administration Oracle Discussion :

ORA-24247 sur Oracle 11g


Sujet :

Administration Oracle

  1. #1
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut ORA-24247 sur Oracle 11g
    bonjour,

    J'avais l'habitude de faire un envoi de mail de ma base (9i) qui listait pas mal d'infos.

    J'ai porté tout çà sur une 11g, qui me renvoit cette erreur ;

    ORA - 24247 network access denied by access control list (ACL).

    Je ne trouve rien de pertinent pour m'aider ; les forums anglophones en parlent, mais la solution m'échappe. Un problème de provilèges sur des packages, semble t'il ....

    Si quelqu'un a une idée.. ??

    merci

    ci dessous, la procédure d'envoi, qui recoit en paramètres le message à envoyer.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    CREATE OR REPLACE procedure send_mail(
    p_exp IN OUT varchar2,
    p_dest IN OUT varchar2,
    p_obj IN OUT varchar2,
    p_msg IN OUT varchar2)
    IS
    v_cnx utl_smtp.connection;
    v_smtp_srv varchar2(200):= 'smtp.xxx.com';
    v_port pls_integer:=25;
    v_msg varchar2(32000);
    BEGIN
    v_cnx:=utl_smtp.open_connection(v_smtp_srv,v_port);
    utl_smtp.HELO(v_cnx,v_smtp_srv);
    utl_smtp.MAIL(v_cnx,p_exp);
    utl_smtp.RCPT(v_cnx,p_dest);
    v_msg:= 'MIME-Version: 1.0' || utl_tcp.CRLF 
    || 'Content-type: text/html;charset="iso-8859-15";'
    || 'Content-Transfer-Enconding: 8bit' || utl_tcp.CRLF 
    || 'date:'||TO_CHAR(sysdate,'dd mon yyyy hh24:mi:ss')||utl_tcp.CRLF
    || 'from:'||p_exp||utl_tcp.CRLF
    || 'subject:'||p_obj||utl_tcp.CRLF
    || 'to:'||p_dest||utl_tcp.CRLF
    || ''||utl_tcp.CRLF
    || p_msg||utl_tcp.CRLF||'';
     
    utl_smtp.DATA(v_cnx,v_msg);
    utl_smtp.quit(v_cnx);
     
    EXCEPTION
    WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
      utl_smtp.quit(v_cnx);
      raise_application_error(-20000,'Erreur send_mail:'||sqlerrm);
     END;
    /
    apprenti sorcier Oracle & boulet intérimaire...
    http://www.courtois.cc/murphy/murphy_informatique.html

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Jamais utilisé le package UTL_SMTP, mais apparemment, sur la 11g, les ports utilisés par ce package sont bloqués par défaut.

    As-tu accès à Metalink ?

  3. #3
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    non, (c'est peut être un tort) mais mon niveau d'anglais est trop faible pour suivre de toute façon...

    je pensais que placer les droits sur le package suffirait, mais il doit y avoir autre chose en effet...

    ex ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT execute ON utl_smtp TO moi
    apprenti sorcier Oracle & boulet intérimaire...
    http://www.courtois.cc/murphy/murphy_informatique.html

  4. #4
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Points : 616
    Points
    616
    Par défaut
    Bonsoir,
    peux-tu essayer d'exécuter ça as sys :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    begin
    dbms_network_acl_admin.create_acl (
    acl => 'utl_mail.xml',
    description => 'Allow mail to be send',
    principal => 'MOI',
    is_grant => TRUE,
    privilege => 'connect'
    );
    commit;
    end;
     
    begin
    dbms_network_acl_admin.add_privilege (
    acl => 'utl_mail.xml',
    principal => 'MOI',
    is_grant => TRUE,
    privilege => 'resolve'
    );
    commit;
    end;
    /
     
    begin
    dbms_network_acl_admin.assign_acl(
    acl => 'utl_mail.xml',
    host => 'xxx.xxx.xxx'
    );
    commit;
    end;

  5. #5
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    ahaa.. une belle réponse que voilà.

    que dois je mettre là dedans ??

    l'adresse IP de mon serveur Oracle ?

    et qu'est ce que le champ 'principal', stp ?


    Quoi qu'il en soit, j'ai pris ta procédure, où pour l'host, j'ai mis l'adresse IP de mon serveur Oracle, le résultat est le même.
    apprenti sorcier Oracle & boulet intérimaire...
    http://www.courtois.cc/murphy/murphy_informatique.html

  6. #6
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Points : 616
    Points
    616
    Par défaut
    principal, c'est le user ou le role à qui tu grantes les privileges.
    pour le paramètre host, si tu as un domain à mettre c'est tout aussi bien. par exemple www.us.oracle.com
    là tu as toute la doc (je la trouve assez claire). http://download.oracle.com/docs/cd/B...tm#insertedID0

  7. #7
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    bon, j'ai dû rater qq étapes, rien ne change ! J'ai pourtant bien remplacé le 'principal' par mon utilisateur, et le host par le nom de domaine...

    pour l'instant, la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT host, acl,
         DECODE(
              DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, 'mon_utilisateur', 'resolve'),
                1, 'GRANTED', 0, 'DENIED', NULL) privilege
         FROM dba_network_acls
        WHERE host IN
          (SELECT * FROM
             TABLE(DBMS_NETWORK_ACL_UTILITY.DOMAINS('mondomaine.fr'))) and
          lower_port IS NULL AND upper_port IS NULL
       ORDER BY DBMS_NETWORK_ACL_UTILITY.DOMAIN_LEVEL(host) desc;
    me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HOST	ACL	PRIVILEGE
    modomaine.fr	/sys/acls/utl_mail.xml	GRANTED
    mais la doc. est plutôt claire, en effet ; je vais me pencher dessus.

    merci beaucoup, je vais désormais ramer un peu moins !
    apprenti sorcier Oracle & boulet intérimaire...
    http://www.courtois.cc/murphy/murphy_informatique.html

  8. #8
    Membre actif Avatar de olivanto
    Responsable d'exploitation informatique
    Inscrit en
    Mars 2005
    Messages
    513
    Détails du profil
    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2005
    Messages : 513
    Points : 204
    Points
    204
    Par défaut
    au final, on peut tout simplement "ouvrir" l'ACL comme ceci.
    C'est moins "classe", mais très efficace. Evidemment il y a moins de granularité dans la sécurité, mais bon...

    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
    18
    19
     
    BEGIN
      DBMS_NETWORK_ACL_ADMIN.create_acl (  
       acl => 'open_acl_file.xml', 
       description => 'ACL sur base',
        principal => 'utilisateur',
        is_grant => TRUE,
        privilege => 'connect',
        start_date => SYSTIMESTAMP,
        end_date => NULL);
     
      DBMS_NETWORK_ACL_ADMIN.assign_acl (
        acl => 'open_acl_file.xml', 
        host => '*',
        lower_port => 1,
        upper_port => 9999); 
     
      COMMIT;
    END;
    Là, ça marche.
    apprenti sorcier Oracle & boulet intérimaire...
    http://www.courtois.cc/murphy/murphy_informatique.html

  9. #9
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 67
    Points : 108
    Points
    108
    Par défaut Précisions :
    Un peu violent !
    Il t'aurait suffit de spécifier le nom d'hôte de ton serveur smtp.
    C'est assez piégeux ce truc. d'autant plus qu'en 11.2.0.1.0 le problème n'apparaissait pas.
    Citation Envoyé par olivanto Voir le message
    au final, on peut tout simplement "ouvrir" l'ACL comme ceci.
    C'est moins "classe", mais très efficace. Evidemment il y a moins de granularité dans la sécurité, mais bon...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        host => '*',
        lower_port => 1,
        upper_port => 9999);
    Là, ça marche.

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 9
    Points
    9
    Par défaut
    Bof, pourquoi laisser Oracle s'occuper des mails ?

    C'est au système d'exploitation que la tâche incombe, sous Linux, sendmail ou postfix sont installé par défaut, il suffit alors de faire :

    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
    18
    BEGIN
    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
      acl => 'smtp_for_localhost.xml',
      description => 'Permissions for localhost SMTP server Sendmail Postfix',
      principal => 'SCOTT',
      is_grant => TRUE,
      privilege => 'connect');
     
    DBMS_NETWORK_ACL_ADMIN.assign_acl (
      acl         => 'smtp_for_localhost.xml',
      host        => 'localhost', 
      lower_port  => 25,
      upper_port  => 25);
     
    COMMIT;
     
    END;
    /

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

Discussions similaires

  1. Erreur ORA-03116 sur Oracle XE
    Par CoeurDeSQL dans le forum Administration
    Réponses: 2
    Dernier message: 01/06/2012, 11h53
  2. extproc.ora sur Oracle 11g
    Par tomtom- dans le forum Administration
    Réponses: 0
    Dernier message: 19/01/2012, 20h51
  3. Réponses: 4
    Dernier message: 08/12/2011, 13h39
  4. ora-00600 sur oracle 9.2.0.1.0
    Par crazykangourou dans le forum Oracle
    Réponses: 8
    Dernier message: 03/04/2008, 14h37
  5. Equivalent de (Oui/Non) d'Access sur Oracle 11g
    Par faressam dans le forum Oracle
    Réponses: 4
    Dernier message: 21/03/2008, 13h43

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