without usuario por password desencriptar defecto create contraseña changing change 12c 11g database oracle passwords

database - usuario - "ORA-28001: la contraseña ha caducado" no se puede reparar



oracle unlock user without changing password (7)

¿Puedes publicar los resultados de los siguientes? Además, ¿qué versión de Oracle está utilizando? Estoy asumiendo 11G?

select * from dba_users where username = ''<yourUserName>'' select p.* from dba_users u , dba_profiles p where u.profile = p.profile and u.userName = ''<yourUserName>''

Tengo curiosidad por ver qué perfil está utilizando y cuáles son sus configuraciones.

Estoy enfrentando un problema con mi base de datos de producción. La contraseña expiró y aunque cambié la contraseña, todavía dice que está vencida. Aún más extraño, tengo una aplicación web de producción y una aplicación web de desarrollo. Ambos acceden a la misma base de datos. La aplicación web de producción funciona perfectamente, y con la aplicación web de desarrollo siempre obtengo:

10:25:42,919 WARN [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: ORA-28001: the password has expired ) at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:225) at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:195) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:633) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:267) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:622) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:381) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89) at org.jboss.security.auth.spi.DatabaseServerLoginModule.getUsersPassword(DatabaseServerLoginModule.java:173) at org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:245) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:784) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:698) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:696) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:695) at javax.security.auth.login.LoginContext.login(LoginContext.java:594) at org.jboss.security.plugins.auth.JaasSecurityManagerBase.defaultLogin(JaasSecurityManagerBase.java:552) at org.jboss.security.plugins.auth.JaasSecurityManagerBase.authenticate(JaasSecurityManagerBase.java:486) at org.jboss.security.plugins.auth.JaasSecurityManagerBase.isValid(JaasSecurityManagerBase.java:365) at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:160) at org.jboss.web.tomcat.security.JBossWebRealm.authenticate(JBossWebRealm.java:384) at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:258) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:417) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:722) Caused by: java.sql.SQLException: ORA-28001: the password has expired at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381) at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:564) at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:207) ... 41 more

Ya inicié sesión en el servidor e hice esto:

bash cd /opt/oracle/admin/<SID> . ./setenv.ora sqlplus / as sysdba >sql: ALTER USER <user> IDENTIFIED BY <new password>;

Aquí está la información solicitada por Jim :

SQL> select * from dba_users where username = ''user''; USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE ------------------------------ ---------- ------------------------------ -------------------------------- ------------------- ------------------- DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED PROFILE INITIAL_RSRC_CONSUMER_GROUP ------------------------------ ------------------------------ ---------------------- ------------------------------ ------------------------------ EXTERNAL_NAME ------------------------------------------------------------------------------------------------------------------------------------------------------ PASSWORD E AUTHENTI -------- - -------- <user> 50 OPEN <userDAT> TEMP 29.07.2010 17:38:32 DEFAULT DEFAULT_CONSUMER_GROUP 10G 11G N PASSWORD SQL> select p.* from dba_users u, dba_profiles p where u.profile = p.profile and u.userName = ''user''; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------------ -------------------------------- -------- ---------------------------------------- DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED DEFAULT CPU_PER_SESSION KERNEL UNLIMITED DEFAULT CPU_PER_CALL KERNEL UNLIMITED DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED DEFAULT IDLE_TIME KERNEL UNLIMITED DEFAULT CONNECT_TIME KERNEL UNLIMITED DEFAULT PRIVATE_SGA KERNEL UNLIMITED DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 DEFAULT PASSWORD_GRACE_TIME PASSWORD 7 16 rows selected.


Estoy 100% seguro de que mi configuración es correcta. Estaba sobrescribiendo todos los datos locales con los archivos del servidor de aplicaciones productivo. Todavía no hay éxito.

El problema también es que este problema de caducidad de contraseña se produjo repentinamente durante el desarrollo, por lo que estoy seguro de que no cambié nada.

Sin embargo, inicié sesión en el sistema de prueba y restablecí la contraseña allí. Mi sistema de prueba contiene como 100 filas, mi aplicación productiva como 1 millón, así que definitivamente puedo decirle que estoy en la base de datos correcta.

Después de restablecer la contraseña del sistema de prueba, ¡puedo volver a iniciar sesión! Así que toda esta historia es muy extraña. Gracias por el apoyo.


Incluso yo estaba enfrentando el mismo problema. El problema se resolvió después de seguir los pasos mencionados a continuación,

  1. Compruebe si alguna de las cuentas ha caducado.

seleccione username, profile, account_status, expiry_date desde dba_users;

  1. Si no hay cuentas vencidas, puede saltar al paso 7
  2. Cree dinámicamente SQL que no haya expirado las cuentas caducadas. Puede recuperar la cuenta restableciendo la contraseña. NOTA: Deberá sustituir {contraseña} por la contraseña que está utilizando para su usuario.

seleccione ''ALTER USER'' || nombre de usuario || ''identificado por {contraseña};'' de dba_users donde account_status como ''EXPIRED%'' y nombre de usuario! = ''XS $ NULL'';

  1. Ejecutar el SQL generado en el paso 3.
  2. Cree dinámicamente SQL que desbloqueará las cuentas bloqueadas.

seleccione ''ALTER USER'' || nombre de usuario || ''cuenta de desbloqueo'' de dba_users donde account_status como ''LOCKED%'' y nombre de usuario! = ''XS $ NULL'';

  1. Ejecutar el SQL generado en el paso 5.
  2. Modifique el perfil asignado a las cuentas que no desea que caduquen para que PASSWORD_LIFE_TIME se establezca en UNLIMITED. Esto evitará que caduquen de nuevo. En mi caso, necesitaba actualizar el perfil DEFAULT.

alterar perfil DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Referencia: http://jaredsoablogaz.blogspot.in/2013/04/weblogic-server-not-starting-due-to.html

-Sandeep


Me enfrenté a un problema similar con la caducidad de la contraseña de Oracle, para resolver este problema cuando intenté lanzar PLSQL, se me solicitó el nombre de usuario / contraseña y ingresé la correcta, pero el sistema me arroja un error de caducidad de contraseña junto con la entrada de restablecimiento de contraseña. Después de restablecer mi contraseña pude conectarme a la base de datos de Oracle.


Simplemente conéctese con SQLPlus y el usuario afectado a su base de datos. SQLPlus le pedirá que cambie su contraseña.


Suponiendo que la base de datos Oracle (también debería funcionar para la MUESTRA de Oracle-XE) está en Unix, ssh-in y:

sqlplus /nolog SQL> connect / as SYSDBA Connected. SQL> SELECT username, account_status FROM dba_users WHERE ACCOUNT_STATUS LIKE ''%EXPIRED%''; # ... your locked account should be listed ... SQL> ALTER USER sample IDENTIFIED BY sample; User altered. SQL> ALTER USER sample ACCOUNT UNLOCK; User altered. SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; Profile altered. SQL> exit


solo ejecuta esta consulta:

ALTER USER user_name IDENTIFIED BY new_user_name ; ALTER USER user_name IDENTIFIED BY user_name ;

cometer;