Lösung für Fehler: ORA-28001: Das Passwort ist abgelaufen
Hintergrund
Ein JAVA-Programm hat einen Fehler ausgegeben, der ” java.sql.SQLException: ORA-28001: Das Passwort ist abgelaufen ” als das Programm lief.
Dieser Fehler wird durch ein abgelaufenes Passwort eines bestimmten Kontos verursacht. Daher hat Oracle System das Konto aus Sicherheitsgründen gesperrt.
Vermutung bestätigen. Ich habe folgenden Befehl ausgeführt
SQL>wählen * von dba_profiles wobei profile = ’DEFAULT’ und resource_name = ’PASSWORD_LIFE_TIME’;
PROFIL RESOURCE_NAME RESOURCE LIMITDEFAULT PASSWORD_LIFE_TIME PASSWORD 180
Es ist definitiv so, dass die maximale Zeit für das Passwort ist 180 Tage habe ich mich daher entschlossen, das Zeitlimit dieses Kontos zu kündigen. Aber bevor Sie den Abbruchvorgang ausführen,Ich muss herausfinden, welches Konto verwendet wird, um die Oracle-Datenbank vom Programm zu verbinden, also habe ich die jdbc- und odm-Datei überprüft.
Drei Lösungen für dieses Problem
1.Konto A entsperren
Angenommen, das Konto ist A und das Passwort lautet 123. Führen Sie einfach den folgenden Befehl aus.
SQL> Benutzer A ändern identifiziert durch 123 Konto entsperren;
Benutzer geändert.
2.Passwort des Kontos A zurücksetzen
SQL>ALTER USER A IDENTIFIED BY 1234;
SQL>ALTER USER A IDENTIFIED BY 123;
3.Die letzte Möglichkeit besteht darin, die Gültigkeitsdauer auf unbegrenzt zu ändern
Es ist nicht erforderlich, den Datenbankdienst nach diesem Vorgang neu zu starten;
(1).Überprüfen Sie den Wert der Profildatei der Tabellen dba_users, Im Allgemeinen,Profil dieses Benutzers ist “STANDARD”
Benutzernamen auswählen,PROFIL VON dba_users;
(2).Überprüfen Sie PASSWORD_LIFE_TIME des Profils,zum Beispiel “STANDARD”.
WÄHLEN * FROM dba_profiles s WHERE s.profile = ’DEFAULT’ AND resource_name = ’PASSWORD_LIFE_TIME’;
(3).Wert von ändern “PASSWORD_LIFE_TIME” zu unbegrenzt.
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Es gab keinen verwandten Fehler von “ORA-28001: Das Passwort ist abgelaufen” nachdem ich dieses Konto entsperrt habe. Dieses Problem war also gelöst.