“ORA-28001:密码已过期”没有可以解决的

我面临着我的生产数据库中的一个问题。 密码过期,虽然我改了密码,还在说这是过期的。 即使是陌生人,我有一个生产Web应用程序和开发Web应用程序。 他们都访问同一个数据库。 生产Web应用程序完美的作品,并与开发Web应用程序,我总是得到:

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

我已经登录到服务器,这样做:

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

这里是由吉姆请求的信息:

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.

--------------解决方案-------------

我100%肯定,我的配置是正确的。 我是用覆盖从生产应用服务器上的文件的所有本地数据。 仍然没有成功。

这个问题也是这个密码过期问题就突然同时发展,所以我相信,我并没有改变任何东西。

但是,我已登录到测试系统和重置密码那里。 我的测试系统包含像100行,我的生产应用程式,例如1万元,所以我可以肯定告诉你,我在正确的数据库。

重新测试系统的密码后,我可以登录了! 所以这整个故事是很奇怪的。 感谢您的支持。

您可以发布以下的结果吗? 此外,你使用的是什么版本的Oracle? 我假设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>'

我很好奇,想看看你使用,你的设置是什么什么文件。

假设Oracle数据库(应为Oracle-XE的样品以及工作)是在Unix,SSH-中和:

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

连我都面临着同样的问题。 问题得到了以下下面提到步骤后得到解决,

  1. 请检查是否有任何帐户已过期

选择用户名,配置文件,ACCOUNT_STATUS,EXPIRY_DATE从DBA_USERS;

  1. 如果没有账户过期,您可以跳到步骤7
  2. 动态地创建SQL,将未到期的已过期的帐户。 您可以通过重置密码未过期的帐户。 注意:您将需要替换{}密码为你使用你的用户的密码。

选择“ALTER USER'|| 用户名|| “鉴定{}密码;' 从DBA_USERS那里ACCOUNT_STATUS像'过期%'和用户名='$ XS NULL'!;

  1. 执行在步骤3中生成的SQL
  2. 动态地创建SQL将解除锁定的帐户。

选择“ALTER USER'|| 用户名|| '占解锁;' 从DBA_USERS那里ACCOUNT_STATUS像“锁定%'和用户名='$ XS NULL'!;

  1. 执行在步骤5中生成的SQL
  2. 修改分配给您唐娜€™吨要到期,因此该PASSWORD_LIFE_TIME设置为无限制帐户的配置文件。 这将让他们再次到期。 就我而言,我需要更新默认配置文件。

修改配置文件默认限制PASSWORD_LIFE_TIME UNLIMITED;

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

-Sandeep

我也遇到类似的问题与密码过期的甲骨文,当我试图发动PLSQL来解决这个问题,它促使我用的用户名/密码,我输入了正确的人,但系统投我密码过期错误与密码一起复位输入。 之后,我重新设置密码我是能够连接到Oracle数据库。

分类:数据库 时间:2015-03-15 人气:2
本文关键词: 数据库,Oracle,密码
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.558 (s). 10 q(s)