Al momento de invocar un Web Service a través del paquete “SYS.UTL_HTTP” de base de datos, puede originarse el siguiente error:

ORA-29273: fallo de la solicitud HTTP
ORA-06512: en “SYS.UTL_HTTP”, línea 1577
ORA-24247: acceso de red denegado por la lista de control de acceso (ACL)
ORA-06512: en línea 1

Esto se debe a que desde la versión 11 de la base de datos Oracle se implementó la lista de control de Acceso (ACL), por lo tanto debes conceder los permisos correspondientes utilizando el siguiente script de base de datos:

---######## Este script crea el ACL en la BD:
begin
dbms_network_acl_admin.create_acl (
acl             => 'nombreacl.xml',
description     => 'Normal Access',
principal       => 'CONNECT',
is_grant        => TRUE,
privilege       => 'connect',
start_date      => null,
end_date        => null
);
end;
/
---######## Este script autoriza al usuario específico poder usar el ACL creado anteriormente:
begin
dbms_network_acl_admin.add_privilege (
acl           => 'nombreacl.xml',
principal     => 'oe', -- usuario de base de datos
is_grant      => TRUE,
privilege     => 'connect',
start_date    => null,
end_date      => null);
end;
/
---#### Este script asocia un host al acl
begin
dbms_network_acl_admin.assign_acl (
acl => 'nombreacl.xml',
host => 'www.google.com', -- host
lower_port => 1,
upper_port => 10000);
end;
/

Nota: es obligatorio utilizar el usuario SYS para ejecutar dicho script.

Para mas información puedes ahondar en la documentación de Oracle sobre Oracle Access Control List (ACL): http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb21sec.htm

Categories: PL/SQL

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *