# Oracle JDBC - Password Expired



## holtiwilan (22. Januar 2007)

Hallo.
Ich habe folgendes Problem.

Ich stelle per Oracle JDBC eine Verbindung zu einem Oracle Server her.
Alles soweit prima.
Aber was mache ich, wenn das Userpasswort abgelaufen (expired) ist.
Ich habe ja keine connection zum Server um per "alter user .." mein eigenes Passwort zu ändern, oder? Bei mir  das jedenfalls nicht. Hat jemand eine Idee für mich?



Vielen Dank.

Tim


----------



## Thomas Darimont (22. Januar 2007)

Hallo,

du musst dich nur als Admin (Sys/System) einloggen (oder einen Sysadmin Fragen) um deinen Account wieder zu entsperren.

Gruß Tom


----------



## holtiwilan (23. Januar 2007)

Hallo.
Ich glaube, ich habe mich falsch ausgedrückt.
Ich suche nach einer lösung, das der User, der sich versucht mit meiner Applikation auf dem Server anzumelden, sein Abgelaufenes Passwort selbst ändern kann. 
Das geht ja mit anderen Oracle Anwendungen auch.

Ich dachte an so was wie:


```
try {
          repositoryConnection = connector.Connect(false,URL, User, Passwd);
} catch (Exception ex) {
          if (ex.toString().indexOf("ORA-28001") != -1) {
              System.out.println("Password Expired");
              //hier dann das setzen des neuen Passwortes mit "alter user...."
```

Mein Problem ist nur, das ich ja durch den gescheiterten Versuch, den User auf dem Server anzumelden, keine Verbuíndung zu diesem habe, um ein alter user abzusetzten.

Ich wäre für einen Ansatz, ohne DBA Anmeldung auf dem Server sehr dankbar.

Viele Grüße

Tim


----------



## MeinerEiner_80 (23. Januar 2007)

Moin!
Schau dir mal diesen Thread an, vielleicht hilft der ja...
http://forum.java.sun.com/thread.jspa?forumID=48&threadID=455430

*grüssle*
MeinerEiner


----------



## Thomas Darimont (23. Januar 2007)

Hallo,

...


> Ich wäre für einen Ansatz, ohne DBA Anmeldung auf dem Server sehr dankbar.


Damit wirds dann schon etwas komplizierter. Eine Möglichkeit wäre es einen zusätzlichen Account (usermaintenance) der nur das Recht hat eine Stored procedure aufzurufen. Diese Stored procedure könnte dann den Account für einen gesperrten User wieder aktivieren. Als Eingabeparameter bekommt die Prozedur dann den Username und das Password des gesperrten Users und ein Freischalteschlüssel. Der Account wird nur dann wieder freigeschaltet wenn die Username und Passwort Kombination für den User stimmt und der Freischalteschlüssel passt. Der Freischalteschlüssel würde beim Auslaufen des Accounts automatisch per Batch-Job generiert und irgendwo für diesen einen User vermerkt mit der Erlaubnis sich selbst wieder freischalten zu dürfen.
Dieser Schlüssel kann dan dem User (auf Anfrage) zugesendet werden.

Gruß Tom


----------

