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.

Como cambiar el Hostname en Red Hat

Para cambiar el hostname de un servidor Red Hat y que éste se preserve luego de un reinicio debemos modificar el archivo: /etc/sysconfig/network

En el cual deberemos colocar el nuevo nombre de nuestro servidor como valor en la variable HOSTNAME:

NETWORKING=yes
HOSTNAME=forms11gr2

Si queremos que el cambio sea temporal ejecutamos:

# hostname <hostname>