sql >> Base de Datos >  >> RDS >> Oracle

Como solucionar ORA-28000 la cuenta esta bloqueada

A menudo nos encontramos con el error ORA-28000 la cuenta está bloqueada en las actividades del día a día. Esto puede suceder tanto con los desarrolladores como con el DBA.

Razones

Esto puede suceder debido a múltiples razones

una. Oracle DBA ha bloqueado deliberadamente la cuenta

alter user <username> account lock;
select status from dba_users where username='&1';

b. Se ha intentado contraseña incorrecta muchas veces resultando en bloqueo. El número de FAILED_LOGIN_ATTEMPTS se puede encontrar utilizando la siguiente consulta

select username , profile from dba_users where username='&1';
-----  ------
SCOTT TECH_PW

select * from dba_profiles
where profile='&1' and resource_name='FAILED_LOGIN_ATTEMPTS';

SQL> select RESOURCE_NAME,resource_type,LIMIT from dba_profiles where PROFILE='TECH_PW' ;
RESOURCE_NAME RESOURCE LIMIT
-----------    -------  -----
COMPOSITE_LIMIT KERNEL DEFAULT
SESSIONS_PER_USER KERNEL DEFAULT
CPU_PER_SESSION KERNEL DEFAULT
CPU_PER_CALL KERNEL DEFAULT
LOGICAL_READS_PER_SESSION KERNEL DEFAULT
LOGICAL_READS_PER_CALL KERNEL DEFAULT
IDLE_TIME KERNEL DEFAULT
CONNECT_TIME KERNEL DEFAULT
PRIVATE_SGA KERNEL DEFAULT
FAILED_LOGIN_ATTEMPTS PASSWORD 5
PASSWORD_LIFE_TIME PASSWORD 90
PASSWORD_REUSE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_MAX PASSWORD 10
PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
PASSWORD_LOCK_TIME PASSWORD DEFAULT
PASSWORD_GRACE_TIME PASSWORD DEFAULT

Default values can be found by querying the default profile
SQL> select RESOURCE_NAME,resource_type,LIMIT from dba_profiles where PROFILE='DEFAULT';
RESOURCE_NAME RESOURCE LIMIT
-------------  -------   ------
COMPOSITE_LIMIT KERNEL UNLIMITED
SESSIONS_PER_USER KERNEL UNLIMITED
CPU_PER_SESSION KERNEL UNLIMITED
CPU_PER_CALL KERNEL UNLIMITED
LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
LOGICAL_READS_PER_CALL KERNEL UNLIMITED
IDLE_TIME KERNEL UNLIMITED
CONNECT_TIME KERNEL UNLIMITED
PRIVATE_SGA KERNEL UNLIMITED
FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
PASSWORD_LIFE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_TIME PASSWORD UNLIMITED
PASSWORD_REUSE_MAX PASSWORD UNLIMITED
PASSWORD_VERIFY_FUNCTION PASSWORD NULL
PASSWORD_LOCK_TIME PASSWORD UNLIMITED
PASSWORD_GRACE_TIME PASSWORD UNLIMITED

También podemos encontrar dónde ocurrieron todos los intentos de inicio de sesión fallidos al habilitar la auditoría

audit session whenever not successful;

select OS_USERNAME,USERNAME,USERHOST,to_char(timestamp,'MM-DD-YYYY HH24:MI:SS'), returncode
from dba_audit_trail
where returncode > 0

Solución

En caso de que esto no suceda a propósito, podemos resolver el problema utilizando el siguiente enfoque en consecuencia

(1) Desbloquee la cuenta usando el siguiente comando

alter user <username> account unlock;

Antes de ejecutar la consulta anterior, asegúrese de resolver el motivo del error. De lo contrario, volverá a ocurrir el error.

(2) Si se desconoce el motivo del error y hasta que se resuelva el problema, podemos crear otro perfil con FAILED_LOGIN_ATTEMPTS ilimitados

SQL> CREATE PROFILE TECH_TMP LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
;

Y asígnelo al usuario que está experimentando el problema

alter user scott profile TECH_TMP;
alter user scott account unlock;

Una vez que se establece la causa y conocemos la fuente de donde proviene la contraseña no válida, podemos cambiar el perfil de usuario al anterior y descartar el perfil recién creado

alter user scott profile TECH_PW;
drop profile TECH_TMP;

Espero que les guste esta publicación en ORA-28000, la cuenta está bloqueada y lo ayudará en sus actividades diarias. Por favor, envíe sus comentarios al respecto

Artículos relacionados

ORA-01017:nombre de usuario/contraseña no válidos; inicio de sesión denegado
Cómo iniciar sesión como usuario sin cambiar la contraseña en la base de datos Oracle
Crear usuario en Oracle
Cómo crear usuarios y roles en la base de datos Oracle 12c
ORA-00904
ORA-28002
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm