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