Para revisar el estado de una cuenta de usuario en Oracle, uso la siguiente orden
set pagesize 500 set linesize 200 set trimspool on column username format a15 column account_status format a15 column expiry_date format a15 column profile format a15 select username, account_status, expiry_date, profile from dba_users;
Con este comando, puedo visualizar las cuentas en la instancia de Oracle
USRCNXNO EXPIRED 2014-10-05 APP_USER DATOSBA OPEN 2014-09-18 APP_END_USER JANE0909 LOCKED 2014-09-18 APP_END_USER LUCSA6266 OPEN 2014-12-01 APP_END_USER LO5639832 OPEN 2014-11-01 APP_END_USER LORGA09O OPEN 2014-09-18 APP_END_USER LOE21800931 OPEN 2014-11-21 APP_END_USER LIA00022056 OPEN 2014-11-25 APP_END_USER USUARIO1 OPEN 2014-11-03 APP_END_USER
Tenemos dos cuentas, una se encuentra EXPIRADA y otra BLOQUEADA
La cuenta expirada, es debido a politicas en claves.
Debido a que esta cuenta es una cuenta especial que nadie toca, solamente aplicativos, no requiere de vencimiento de claves, por tanto realizamos un cambio de politica en el perfil asignado, el cual es APP_USER
SQL> alter profile APP_USER limit PASSWORD_REUSE_MAX UNLIMITED PASSWORD_REUSE_TIME default; Profile altered.
Con esto definimos que el usuario USRCNXNO no maneje expiración de clave y que use siempre la misma contraseña.
Surge una duda o un problema.
Que sucede si no sabemos que clave tenía el usuario y debemos nuevamente asignar la clave que anteriormente tenía?
Bueno, en este caso, usamos el siguiente SQL para que se conserve la misma contraseña.
SQL> select 'alter user "'||d.username||'" identified by values '''||u.password||''';' c from dba_users d, sys.user$ u where d.username = upper('&&username') and u.user# = d.user_id; Enter value for username: USRCNXNO old 1: select 'alter user "'||d.username||'" identified by values '''||u.password||''';' c from dba_users d, sys.user$ u where d.username = upper('&&username') and u.user# = d.user_id new 1: select 'alter user "'||d.username||'" identified by values '''||u.password||''';' c from dba_users d, sys.user$ u where d.username = upper('USRCNXNO') and u.user# = d.user_id C -------------------------------------------------------------------------------- alter user "USRCNXNO" identified by values '604376B239945A18';
La orden anterior nos solicita el nombre de usuario a consultar, luego de ello nos devuelve el query que debemos ejecutar para asignar misma clave o contraseña.
SQL> alter user "USRCNXNO" identified by values '604376B239945A18'; User altered.
Con esto que hemos hecho?
Hemos desactivado politica de vencimiento de clave y de reutilización de la misma. Además hemos asignado la clave que ya tenía al usuario en cuestión.
El siguiente usuario JANE0909 se encuentra bloqueado.
Para ello ejecutamos
SQL> alter user JANE0909 ACCOUNT UNLOCK; User altered.
Y esto es todo. El usuario puede volver a conectarse sin problema.
Sin respuestas