domingo, 26 de julio de 2020

Desbloquear cuenta de usuario o cuenta admin en Oracle Apex 20.1

De vez en cuando sucede que un usuario de la aplicación de Apex se le olvide su contraseña o la ingrese mal varias veces, esto hará que la cuenta del usuario en Oracle Apex se bloquee, lo mismo puede suceder para la cuenta de administración utilizada para administrar el entorno de Apex.

Una forma para desbloquear el usuario final o el usuario administrador es con los pasos siguientes como usuario SYS:

1. El siguiente comando nos permitirá ver los usuarios que actualmente se encuentran bloquedados: 

select * from APEX_200100.WWV_FLOW_FND_USER
where account_locked = 'Y';

2. Una vez hemos corroborado que el usuario en cuestión se encuentra bloqueado, podemos ejecutar el siguiente comando para desbloquear el usuario, acá desbloquearé un usuario con nombre CARLOS:

update APEX_200100.WWV_FLOW_FND_USER
set account_locked = 'N'
where user_name in ('CARLOS');

NOTA: si se fijan estoy usando el esquema de APEX_200100, esto es porque mi versión de APEX es la 20.1 si su versión es diferentes deben cambiarlo al nombre de esquema correspondiente a su versión, pueden determinar el nombre de su esquema ejecutando el siguiente comando siempre como usuario SYS:

select username from dba_users where username like 'APEX%';

El comando anterior nos mostrará una serie de esquemas entre los cuales deberemos utilizar el que tiene números ya que éstos indican la versión de Apex instalada en su entorno:



Con los pasos anteriores habremos desbloqueado el usuario sin problemas!

Saludos! 


viernes, 24 de julio de 2020

Oracle Apex 20.1: ORA-24247: network access denied by access control list (ACL)

Al tratar de utilizar un servicio REST en Oracle Apex 20.1 el siguiente mensaje puede aparecer:

ORA-24247: network access denied by access control list (ACL)



Este mensaje es normal es un ambiente recien creado de Apex, donde no se ha habilitado los servicios de red.

Los servicios de red nos permiten realizar las siguientes acciones:
  • Envío de correo saliente en Oracle Application Express.
  • Llamar a métodos desde el paquete APEX_MAIL.
  • Consumir servicios web de Oracle Application Express.
  • Realización de llamadas LDAP salientes desde Oracle Application Express.
  • Impresión de reportes en PDF.

Para solventar el mensaje anterior basta con ejecutar como usuario SYS de la Base de datos el siguiente script para brindar el acceso requerido:

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'APEX_200100',
                           principal_type => xs_acl.ptype_db));
END;
/


Del script anterior cabe recalcar los siguientes puntos:

  • El asterisco indica que se brinda acceso desde cualquier host. Puede ser reemplazado el valor por la palabra localhost para restringir el acceso solamente desde el servidor donde se encuentra instalada la Base de Datos.
  • En el principal_name se brinda acceso al usuario APEX_200100.
  • Este Script asumen que la versión de la Base de Datos siendo utilizada es 12c o superior.

NOTA: Si en caso se está utilizando una Base de Datos previa a la versión 12c se puede usar el siguiente script:

DECLARE
  ACL_PATH  VARCHAR2(4000);
BEGIN
   
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
 
  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_200100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_200100', TRUE, 'connect');
  END IF;
 
EXCEPTION
  
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'APEX_200100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;


miércoles, 8 de julio de 2020

REP-52262: Diagnostic output is disabled en Oracle Reports 12c

Este mensaje suele aparecer en una nueva instalación de Oracle Forms/Reports 11g o 12c.



Este mensaje nos indica que está deshabilitada la información de diagnostico de Reports y suele ser el siguiente mensaje en aparecer luego de haber solucionado el error REP-51019

Para solucionarlo debemos realizar lo siguiente:

1. Sacar respaldo del archivo rwservlet.properties

Este archivo se encuentra en la siguiente ubicación:

$DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_#\configuration


2.Agregar la siguiente linea debajo de la linea de <inprocess>

<webcommandaccess>L2</webcommandaccess>


3. Por último se debe reiniciar el servidor de Reportes.

Con los pasos anteriores ya no se presentará el mensaje en cuestión y podremos acceder sin problema a los comandos web del servlet de Reports.