Buenas, en esta ocasión quiero mostrarles algunas consultas que encuentro bastante útiles a la hora de utilizar Oracle APEX que debemos tener siempre en cuenta tanto para Administradores de Base de Datos como Desarrolladores.
Veamos cuales son.
Obtener la versión del APEX y el ORDS
//APEX
select version_no from apex_release;
//ORDS
select ords.installed_version from dual;
Verificar estado de usuarios de APEX y ORDS:
(Requiere usuario SYS)
select username usuario, account_status estado, LOCK_DATE fecha_de_bloqueo, EXPIRY_DATE fecha_de_expiracion, PROFILE
from dba_users
where username in ('ANONYMOUS','PDBADMIN','SYS','XDB')
or username like 'APEX%'
or username like 'ORDS%'
order by username;
Verificar usuarios bloqueados de APEX:
(Requiere usuario SYS)
Aquí deben tener en cuenta la versión del APEX, por ejemplo:
Para la versión 20.2 aplica APEX_200200.
Para la versión 21.2 aplica APEX_210200.
Para la versión 22.2 aplica APEX_220200 y así sucesivamente.
SELECT * FROM APEX_220200.WWV_FLOW_FND_USER A WHERE ACCOUNT_LOCKED = 'Y';
Desbloquear y cambiar contraseña de usuarios de APEX:
(Requiere usuario SYS) Con esto podemos tener una idea de como volver a habilitar usuarios bloqueados por A o B motivo, así como tambien cambiar las contraseñas tanto del usuario ADMIN como de cualquier otro.
update APEX_220200.WWV_FLOW_FND_USER
set ACCOUNT_LOCKED = 'N', WEB_PASSWORD = 'NuevoPass123'
where user_name = 'ADMIN';
commit;
Desbloquear y bloquear usuarios de APEX con el paquete APEX_UTIL
--Bloquear usuario
begin
APEX_UTIL.LOCK_ACCOUNT (p_user_name IN VARCHAR2 );
end;
--Desbloquear usuario
begin
APEX_UTIL.UNLOCK_ACCOUNT (p_user_name IN VARCHAR2 );
end;
--Obtener estado de los usuarios
BEGIN
FOR c1 IN (SELECT user_name FROM apex_users) loop
IF APEX_UTIL.GET_ACCOUNT_LOCKED_STATUS(p_user_name => c1.user_name) THEN
HTP.P('Cuenta de Usuario:'||c1.user_name||' bloqueada.');
END IF;
END LOOP;
END;
Ver Usuarios Conectados
select distinct ss.username,
REGEXP_SUBSTR(client_identifier, '[^:]+') user_apex,
ss.MACHINE,
ss.OSUSER,
ss.TERMINAL,
ss.PROGRAM,
ss.MODULE,
ss.LOGON_TIME,
ss.SERVICE_NAME
from v$session ss
where ss.TYPE = 'USER';