the password ora lock identified has grace expired change oracle

password - oracle expired(grace)



cambiar el estado de la cuenta de usuario de Oracle de EXPIRE(GRACE) a OPEN (4)

Después de recibir el mensaje Your password will be expired with in 7 days caducará Your password will be expired with in 7 days , cambié los días de caducidad de la contraseña del perfil default a UNLIMITED . Pero el estado de cuenta de algunos usuarios aún permanece en EXPIRE(GRACE) .

¿Alguna forma de cambiar el estado de la cuenta de usuario de Oracle de EXPIRE(GRACE) a OPEN sin restablecer la contraseña?


En caso de que sepa la contraseña de ese usuario, o si desea adivinarla, haga lo siguiente:

  • connect user/password

Si este comando se conecta correctamente, verá el mensaje "conectado", de lo contrario verá un mensaje de error. Si está logulando un registro exitoso, significa que conoce la contraseña. En ese caso, solo haz:

  • alter user NAME_OF_THE_USER identified by OLD_PASSWORD;

y esto restablecerá la contraseña a la misma contraseña que antes y también restablecerá account_status para ese usuario.


No, no puede cambiar el estado de una cuenta de EXPIRE (GRACIA) a ABRIR sin restablecer la contraseña.

La documentation dice:

Si causa que la contraseña de un usuario de la base de datos caduque con PASSWORD EXPIRE, entonces el usuario (o el DBA) debe cambiar la contraseña antes de intentar iniciar sesión en la base de datos después de la expiración.

Sin embargo, puede cambiar el estado a ABIERTO restableciendo la contraseña del usuario al mismo valor.

Dependiendo de su versión y configuración, una de estas consultas probablemente le proporcionará el hash de contraseña:

select spare4 from sys.user$ where name=''[user name]''; select password from dba_users where username = ''[user name]'';

Luego usa esto para restablecerlo:

alter user [user name] identified by values ''[result from above query]'';


Recopilación de la respuesta de jonearles, http://kishantha.blogspot.com/2010/03/oracle-enterprise-manager-console.html y http://blog.flimatech.com/2011/07/17/changing-oracle-password-in-11g-using-alter-user-identified-by-values/ (Oracle 11g):

Para evitar que esto suceda en el futuro, haga lo siguiente.

  • Inicie sesión en sqlplus como sysdba -> sqlplus "/ as sysdba"
  • Ejecute -> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;

Para restablecer el estado de los usuarios, ejecute la consulta:

select ''alter user '' || su.name || '' identified by values'' || '' '''''' || spare4 || '';'' || su.password || '''''';'' from sys.user$ su join dba_users du on ACCOUNT_STATUS like ''EXPIRED%'' and su.name = du.username;

y ejecutar algunos o todos los conjuntos de resultados.


set long 9999999 set lin 400 select DBMS_METADATA.GET_DDL(''USER'',''YOUR_USER_NAME'') from dual;

Esto producirá algo como esto:

SQL> select DBMS_METADATA.GET_DDL(''USER'',''WILIAM'') from dual; DBMS_METADATA.GET_DDL(''USER'',''WILIAM'') -------------------------------------------------------------------------------- CREATE USER "WILIAM" IDENTIFIED BY VALUES ''S:6680C1468F5F3B36B726CE7620F FD9657F0E0E49AE56AAACE847BA368CEB;120F24A4C2554B4F'' DEFAULT TABLESPACE "USER" TEMPORARY TABLESPACE "TEMP" PASSWORD EXPIRE SQL>

Solo usa la primera parte de eso con otro usuario:

ALTER USER "WILIAM" IDENTIFIED BY VALUES ''S:6680C1468F5F3B36B726CE7620F FD9657F0E0E49AE56AAACE847BA368CEB;120F24A4C2554B4F'';

Esto volverá a poner la cuenta en estado ABIERTO sin cambiar la contraseña (siempre que corte y pegue correctamente el valor de hash de la salida de DBMS_METADATA.GET_DDL) y ni siquiera necesita saber cuál es la contraseña.