it-swarm.com.de

"ORA-28001: Das Passwort ist abgelaufen" nicht fixierbar

Ich habe ein Problem mit meiner Produktionsdatenbank. Das Passwort ist abgelaufen und obwohl ich das Passwort geändert habe, ist es trotzdem abgelaufen. Selbst wenn ich fremder bin, habe ich eine Produktions- und eine Entwicklungs-Webanwendung. Beide greifen auf dieselbe Datenbank zu. Die Produktionswebanwendung funktioniert perfekt und mit der Entwicklungswebanwendung bekomme ich immer:

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

Ich habe mich bereits beim Server angemeldet und habe folgendes getan:

bash
cd /opt/Oracle/admin/<SID>
. ./setenv.ora
sqlplus / as sysdba

>sql: ALTER USER <user> IDENTIFIED BY <new password>;

Hier sind die Informationen von Jim angefordert :

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. 
19
nimrod

Ich bin zu 100% sicher, dass meine Konfiguration korrekt ist. Ich habe alle lokalen Daten mit den Dateien vom produktiven App-Server überschrieben. Immer noch kein Erfolg.

Das Problem ist auch, dass dieses Kennwort-Ablaufproblem plötzlich während der Entwicklung aufgetreten ist, daher bin ich sicher, dass ich nichts geändert habe.

Ich habe mich jedoch beim Testsystem angemeldet und dort das Passwort zurückgesetzt. Mein Testsystem enthält 100 Zeilen, meine produktive App 1 Million. Ich kann Ihnen also definitiv sagen, dass ich in der richtigen Datenbank bin. 

Nach dem Zurücksetzen des Passworts des Testsystems kann ich mich wieder einloggen! Die ganze Geschichte ist also sehr seltsam. Danke für die Unterstützung.

8
nimrod

Angenommen, die Oracle-Datenbank (sollte auch für SAMPLE von Oracle-XE funktionieren) ist unter Unix, ssh-in und:

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
29
kares

Kannst du die Ergebnisse der folgenden posten? Welche Version von Oracle verwenden Sie auch? Ich gehe von 11G aus?

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>'

Ich würde gerne wissen, welches Profil Sie verwenden und wie Ihre Einstellungen lauten.

5
Jim

Sogar ich hatte das gleiche Problem. Das Problem wurde gelöst, nachdem die folgenden Schritte ausgeführt wurden.

  1. Überprüfen Sie, ob eines der Konten abgelaufen ist

wählen Sie aus dba_users Benutzernamen, Profil, Konto-Status und Ablaufdatum aus.

  1. Wenn keine Konten abgelaufen sind, können Sie mit Schritt 7 fortfahren
  2. Erstellen Sie dynamisch SQL, das die abgelaufenen Konten verfällt. Sie können das Konto nicht verfallen lassen, indem Sie das Kennwort zurücksetzen. HINWEIS: Sie müssen das Kennwort, das Sie verwenden, für Ihren Benutzer durch {Kennwort} ersetzen.

wählen Sie 'ALTER USER' || Benutzername || 'identifiziert durch {Passwort}'; von dba_users wo account_status wie 'EXPIRED%' und Benutzername! = 'XS $ NULL';

  1. Führen Sie die in Schritt 3 generierte SQL aus
  2. Erstellen Sie dynamisch SQL, um die gesperrten Konten zu entsperren.

wählen Sie 'ALTER USER' || Benutzername || "Konto entsperren"; von dba_users wobei account_status wie 'LOCKED%' und Benutzername! = 'XS $ NULL' ist;

  1. Führen Sie die in Schritt 5 generierte SQL aus
  2. Ändern Sie das Profil, das den Konten zugewiesen ist, für die Sie nicht verfallen möchten, so dass PASSWORD_LIFE_TIME auf UNLIMITED gesetzt ist. Dies verhindert, dass sie erneut ablaufen. In meinem Fall musste ich das DEFAULT-Profil aktualisieren.

profil ändern DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

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

-Sandeep

4
user2357759

 enter image description here 1. Gehen Sie zu Ihrer Befehlszeilenschnittstelle . 2. Geben Sie dann sqlplus ein.

2
Omotayo Peter

Verbinden Sie sich einfach mit SQLPlus und dem betroffenen Benutzer zu Ihrer Datenbank. SQLPlus fordert Sie auf, Ihr Passwort zu ändern.

1
atamanroman

Einfacher geht's nicht :)

C:\>sqlplus /nolog
SQL> connect / as SYSDBA
SQL> select * from dba_profiles;
SQL> alter profile default limit password_life_time unlimited;
SQL> alter user hse identified by Oracle;
SQL> commit;
SQL> exit;
0
Taravat

Ich hatte ein ähnliches Problem mit Oracle, wenn das Passwort abläuft. Um dieses Problem zu beheben, als ich versuche, PLSQL zu starten, wurde ich mit dem Benutzernamen/Passwort aufgefordert und das richtige eingegeben. Nachdem ich mein Passwort zurückgesetzt hatte, konnte ich eine Verbindung zur Oracle-Datenbank herstellen. 

0
DMG

führen Sie einfach diese Abfrage aus:

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

verpflichten;

0
Karim Oukara