vencida usuario recuperar password fecha expired expirado expiracion contraseña cambiar activar 11g oracle security

usuario - ¿Cómo desactivo la caducidad de la contraseña de Oracle?



password expired oracle (5)

Estoy usando Oracle para el desarrollo. La contraseña para una cuenta de rutina de carga que siempre uso para reconstruir mi base de datos ha expirado.

¿Cómo desactivo la caducidad de contraseñas para este usuario (y todos los demás usuarios) de forma permanente?

Estoy usando Oracle 11g, que tiene contraseñas caducas de forma predeterminada.


Como las demás respuestas afirman, cambiar el perfil del usuario (por ejemplo, el perfil ''DEFAULT'') dará lugar a contraseñas, que una vez establecidas, nunca caducarán.

Sin embargo, como señala un comentador, es posible que las contraseñas establecidas en los valores anteriores del perfil ya hayan expirado y (si después del período de gracia especificado del perfil) la cuenta se bloqueó.

La solución para las contraseñas expiradas con cuentas bloqueadas (como se proporciona en un comentario que responde) es utilizar una versión del comando ALTER USER:

ALTER USER xyz_user ACCOUNT UNLOCK;

Sin embargo, el comando de desbloqueo solo funciona para las cuentas donde la cuenta está realmente bloqueada, pero no para las cuentas que se encuentran en el período de gracia, es decir, donde la contraseña ha expirado pero la cuenta aún no está bloqueada. Para estas cuentas, la contraseña debe restablecerse con otra versión del comando ALTER USER:

ALTER USER xyz_user IDENTIFIED BY new_password;

A continuación hay una pequeña secuencia de comandos SQL * Plus que un usuario con privilegios (por ejemplo, el usuario ''SYS'') puede usar para restablecer la contraseña de un usuario al valor actual hash almacenado en la base de datos.

EDITAR: Las versiones anteriores de Oracle almacenan la contraseña o el hash de contraseña en la columna de pword, las versiones más nuevas de Oracle almacenan el hash de contraseña en la columna spare4. La secuencia de comandos a continuación cambió para recopilar las columnas de prosa y repuesto4, pero para usar la columna de repuesto4 para restablecer la cuenta del usuario; modificar según sea necesario.

REM Tell SQL*Plus to show before and after versions of variable substitutions. SET VERIFY ON SHOW VERIFY REM Tell SQL*Plus to use the ampersand ''&'' to indicate variables in substitution/expansion. SET DEFINE ''&'' SHOW DEFINE REM Specify in a SQL*Plus variable the account to ''reset''. REM Note that user names are case sensitive in recent versions of Oracle. REM DEFINE USER_NAME = ''xyz_user'' REM Show the status of the account before reset. SELECT ACCOUNT_STATUS, TO_CHAR(LOCK_DATE, ''YYYY-MM-DD HH24:MI:SS'') AS LOCK_DATE, TO_CHAR(EXPIRY_DATE, ''YYYY-MM-DD HH24:MI:SS'') AS EXPIRY_DATE FROM DBA_USERS WHERE USERNAME = ''&USER_NAME''; REM Create SQL*Plus variable to hold the existing values of the password and spare4 columns. DEFINE OLD_SPARE4 = "" DEFINE OLD_PASSWORD = "" REM Tell SQL*Plus where to store the values to be selected with SQL. REM Note that the password hash value is stored in spare4 column in recent versions of Oracle, REM and in the password column in older versions of Oracle. COLUMN SPARE4HASH NEW_VALUE OLD_SPARE4 COLUMN PWORDHASH NEW_VALUE OLD_PASSWORD REM Select the old spare4 and password columns as delimited strings SELECT '''''''' || SPARE4 || '''''''' AS SPARE4HASH, '''''''' || PASSWORD || '''''''' AS PWORDHASH FROM SYS.USER$ WHERE NAME = ''&USER_NAME''; REM Show the contents of the SQL*Plus variables DEFINE OLD_SPARE4 DEFINE OLD_PASSWORD REM Reset the password - Older versions of Oracle (e.g. Oracle 10g and older) REM ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_PASSWORD; REM Reset the password - Newer versions of Oracle (e.g. Oracle 11g and newer) ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_SPARE4; REM Show the status of the account after reset SELECT ACCOUNT_STATUS, TO_CHAR(LOCK_DATE, ''YYYY-MM-DD HH24:MI:SS'') AS LOCK_DATE, TO_CHAR(EXPIRY_DATE, ''YYYY-MM-DD HH24:MI:SS'') AS EXPIRY_DATE FROM DBA_USERS WHERE USERNAME = ''&USER_NAME'';


Creo que el comportamiento de caducidad de la contraseña, por defecto, es que nunca caduque. Sin embargo, puede configurar un perfil para su conjunto de usuarios dev y configurar PASSWORD_LIFE_TIME . Vea el orafaq para más detalles. Puede ver here un ejemplo de la perspectiva y el uso de una persona.


Para el desarrollo , puede desactivar la política de contraseñas si no se configuró ningún otro perfil (es decir, desactivar la caducidad de la contraseña por defecto):

ALTER PROFILE "DEFAULT" LIMIT PASSWORD_VERIFY_FUNCTION NULL;

Luego, restablece la contraseña y desbloquea la cuenta de usuario. Nunca debería caducar de nuevo:

alter user user_name identified by new_password account unlock;


Para modificar la política de caducidad de contraseñas para un determinado perfil de usuario en Oracle, primero compruebe qué perfil utiliza el usuario:

select profile from DBA_USERS where username = ''<username>'';

Luego puede cambiar el límite para que nunca caduque al usar:

alter profile <profile_name> limit password_life_time UNLIMITED;

Si quiere verificar previamente el límite, puede usar:

select resource_name,limit from dba_profiles where profile=''<profile_name>'';


Sugeriré que no es una buena idea desactivar la caducidad de la contraseña, ya que puede ocasionar posibles amenazas a la confidencialidad, la integridad y la disponibilidad de los datos.

Sin embargo, si así lo deseas.

Si tiene un acceso adecuado, use el siguiente SQL

SELECCIONE username, account_status FROM dba_users;

Esto debería darte un resultado como este.

USERNAME ACCOUNT_STATUS ------------------------------ ----------------- SYSTEM OPEN SYS OPEN SDMADM OPEN MARKETPLACE OPEN SCHEMAOWNER OPEN ANONYMOUS OPEN SCHEMAOWNER2 OPEN SDMADM2 OPEN SCHEMAOWNER1 OPEN SDMADM1 OPEN HR EXPIRED(GRACE) USERNAME ACCOUNT_STATUS ------------------------------ ----------------- APEX_PUBLIC_USER LOCKED APEX_040000 LOCKED FLOWS_FILES LOCKED XS$NULL EXPIRED & LOCKED OUTLN EXPIRED & LOCKED XDB EXPIRED & LOCKED CTXSYS EXPIRED & LOCKED MDSYS EXPIRED & LOCKED

Ahora puedes usar Pedro Carriço para responder https://.com/a/6777079/2432468