jueves, 1 de mayo de 2014

Como crear un ACL para Base de Datos 11g o 12c

Acciones como enviar un correo, consultar un servidor LDAP (OID, Active Directory), conectarse a un servidor FTP desde la base de datos, puede generar un error como el siguiente:

RA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.DBMS_LDAP_API_FFI", line 25
ORA-06512: at "SYS.DBMS_LDAP", line 57

Esto se debe a que por seguridad toda aquella conexión desde adentro de la base de datos no se encuentra autorizada, para ello debemos crear un ACL, con la cual otorgamos el permiso para un usuario/s dado/s puedan realizar la conexión y demás tares que requiere.

La creación de un ACL se debe hacer con el usuario SYS y consta de 2 partes:

Si por ejemplo le queremos dar permiso a un usuario "carlos" para que pueda realizar conexión a un servidor de OID primero debemos crear la ACL de la siguiente manera:

BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'AccesoOID.xml',
description => 'Permisos para acceder a OID',
principal => 'carlos',
is_grant => TRUE,
privilege => 'connect'
);
COMMIT;
END;
/

Posterior a ello debemos de especificar el nombre del host y puerto de donde se encuentra nuestro Servidor de OID:

BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'AccesoOID.xml',
host => 'oidServer.com',
lower_port => 3060,
upper_port => null);
COMMIT;
END;
/

Con lo anterior si tratamos de realizar una conexión desde la base de datos ya no tendremos problemas.

No hay comentarios:

Publicar un comentario