sábado, 10 de octubre de 2015

Error ORA-28000: the account is locked

Cuando al intentar logarnos en una base de datos Oracle nos da el error ORA-28000: the account is locked, significa que el usuario con el que estamos intentando entrar está bloqueado (es posible que por superar el número máximo de intentos erróneos al realizar login). Ante esto tenemos 2 posibles escenarios:

1- Conocemos otro usuario con permisos para desbloquear usuarios
Si estamos en esta situación  deberemos logarnos con él y lanzar la siguiente consulta para verificar que el usuario está bloqueado. En el ejemplo que pongo a continuación voy a coger el usuario APEX_PUBLIC_USER:
SQL> select username,account_status from dba_users;                               

USERNAME                       ACCOUNT_STATUS
------------------------------              --------------------------------
SYSTEM                               OPEN
SYS                                       OPEN
ANONYMOUS                      OPEN
APEX_PUBLIC_USER          LOCKED
APEX_040000                       LOCKED
OUTLN                            EXPIRED & LOCKED
XS$NULL                        EXPIRED & LOCKED
XDB                                 EXPIRED & LOCKED
CTXSYS                           EXPIRED & LOCKED
MDSYS                            EXPIRED & LOCKED
FLOWS_FILES                EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------               --------------------------------
HR                                      EXPIRED & LOCKED


Y una vez comprobado que el usuario realmente tiene el estatus bloqueado (LOCKED) lo desbloqueamos con la siguiente consulta:

SQL> alter user APEX_PUBLIC_USER account unlock;

Tras esto el usuario estará desbloqueado. Lo podemos comprobar lanzando de nuevo la consulta anterior:

SQL> select username,account_status from dba_users;                              

USERNAME                       ACCOUNT_STATUS
------------------------------             --------------------------------
SYSTEM                                   OPEN
SYS                                          OPEN
ANONYMOUS                         OPEN
APEX_PUBLIC_USER             OPEN
APEX_040000                         LOCKED
OUTLN                            EXPIRED & LOCKED
XS$NULL                        EXPIRED & LOCKED
XDB                                EXPIRED & LOCKED
CTXSYS                          EXPIRED & LOCKED
MDSYS                           EXPIRED & LOCKED
FLOWS_FILES               EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------             --------------------------------
HR                                    EXPIRED & LOCKED




2- Es el único usuario que tenemos para acceder a la base de datos y está bloqueado
En este caso deberemos acceder sin credenciales como indiqué en el artículo ERROR ORA-01017: invalid username/password; logon denied y en el momento que hayamos accedido al servidor realizaremos el paso 1.

No hay comentarios:

Publicar un comentario