Oracle introduce un acceso detallado a los servicios de red mediante listas de control de acceso (ACL) en el repositorio de XML DB, lo que permite controlar qué usuarios acceden a qué recursos de red, independientemente de las concesiones de paquetes.
Crear ACL:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
ACL => 'accesos.xml',
DESCRIPTION => 'ACL for webservices',
PRINCIPAL => 'ESQUEMA',
IS_GRANT => TRUE,
PRIVILEGE => 'connect'
);
COMMIT;
END;
Asignar ACL:
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL
(ACL => 'accesos.xml'
HOST => '*');
COMMIT;
END;
Brindar privilegios a ACL:
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE (ACL => 'accesos.xml',
PRINCIPAL => 'ESQUEMA',
IS_GRANT => TRUE,
PRIVILEGE => 'connect',
POSITION => NULL);
COMMIT;
END;
Otorgar permiso de paquete
de red oracle:
GRANT EXECUTE ON UTL_HTTP TO ESQUEMA;
En caso de eliminar el ACL
se ejecuta el siguiente script:
BEGIN
DBMS_NETWORK_ACL_ADMIN.DROP_ACL ('accesos.xml');
COMMIT;
END;
Consulta para manejo y
control ACL´s:
SELECT * FROM
DBA_NETWORK_ACLS;
SELECT * FROM
DBA_NETWORK_ACL_PRIVILEGES;