Con la siguiente Sentencia se crea la ACL y se le da el nombre de smtp_acl_file.xml, el permiso se le da al usuario PUBLIC con el objetivo de que la ACL la pueda usar cualquier schema y con el privilegio de connect.
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl =>
'smtp_acl_file.xml',
description
=> 'ACL that lets everyone send mail',
principal
=> 'PUBLIC',
is_grant =>
TRUE,
privilege
=> 'connect');
END;
2. Asignación de permisos: 'resolve' a la ACL 'smtp_acl_file.xml'
Se le asigna permisos a la ACL smtp_acl_file.xml de RESOLVE a todos osea a PUBLIC, este permiso permite buscar todos los nombres de host y direcciones IP.
BEGIN
DBMS_NETWORK_ACL_ADMIN.add_privilege(
acl => 'smtp_acl_file.xml',
principal => 'PUBLIC',
is_grant => TRUE,
privilege => 'resolve'
);
END;
/
COMMIT;
3. Se le asigna el nombre de host o URL y el puerto del servicio en este caso seria el 25 el del SMTP.
BEGIN
DBMS_NETWORK_ACL_ADMIN.assign_acl(
acl => 'smtp_acl_file.xml',
HOST =>
'smtp.example.oracle.com',
lower_port => 25,
upper_port => 25
);
END;
/
COMMIT;
4. Se realiza la prueba con la siguiente consulta y se valida que tenga los GRANT.
Con el siguiente query se revisa si la pagina con el puerto tiene el grant asignado.
Con el siguiente query se revisa si la pagina con el puerto tiene el grant asignado.
SELECT host, lower_port, upper_port, acl, DECODE(
DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, 'PUBLIC', 'connect'),
1,
'GRANTED', 0, 'DENIED', null) privilege FROM dba_network_acls
WHERE host
IN (SELECT * FROM TABLE(DBMS_NETWORK_ACL_UTILITY.DOMAINS('smtp.example.oracle.com')))
--ORDER BY
DBMS_NETWORK_ACL_UTLITITY.DOMAIN_LEVEL(host) desc, lower_port, upper_port;
No hay comentarios.:
Publicar un comentario