jeudi 23 février 2012

Résoudre ORA-24247: network access denied by access control list (ACL) when trying to send email

En 11G, Oracle à introduit des controles d'accès sur certain packages entrainant un accès exterieur à la base.


C'est le cas notamment du package utl_mail_send, pour ce faire, il faut définir des 'Access Control List' (ACL) pour définir qui, quoi et vers ou un utilisateur peut effectuer des connexions extérieures à la base de données.


Le pré requis est d'avoir tout d'abord la couche XML DB.


Exemple :
begin
dbms_network_acl_admin.create_acl (
acl => 'utl_mail.xml',
description => 'Allow mail to be send',
principal => 'USER1',
is_grant => TRUE,
privilege => 'connect'
);
commit;
end;
/

begin
dbms_network_acl_admin.add_privilege (
acl => 'utl_mail.xml',
principal => 'USER1',
is_grant => TRUE,
privilege => 'resolve'
);
commit;
end;
/

begin
dbms_network_acl_admin.assign_acl(
acl => 'utl_mail.xml',
host => 'mymailserver.localdomain'
);
commit;
end;
/

Ici nous autorisons l'utilisateur USER1 à effectuer les opérations de connect et resolve vers le serveur mymailserver.localdomain.

Aucun commentaire:

Enregistrer un commentaire