Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Oracle Passwort ändern! (https://www.delphipraxis.net/124468-oracle-passwort-aendern.html)

lnaemi 19. Nov 2008 14:13

Datenbank: Oracle • Version: ??? • Zugriff über: ???

Oracle Passwort ändern!
 
Liebe Leute,
ich bin eine .Net-Entwicklerin und jetzt habe ich eine alte Delphi-Projekt bekommen, wo ich einiges ändern muss. :shock:
Das Datenbak hinter das Projekt ist Oracle, version noch unbekannt. die anfordeungen sind nicht kompliziert aber halt für mich, noch nie delphi gemacht, ziemlich unklar. :roll:

in Datenbank gibt es eine tabelle mit username aber keine passwörte dazu. jetzt ist gewünscht, dass man durch Programm auch passwörte verwalten kann:

Das Passwort muss Sonderzeichen beinhalten können.
Das Passwort soll mit einer Zahl beginnen können.

irgendwelche ideen, wie so was machbar ist?? gibt es von oracle aus einstellungen was man ändern kann?? und wo finde ich die passwörter in oracle, wenn sie nicht in user-tabelle eingetragen sind. :wall:


Ich werde demnächst öfter nerven. ich hoffe, ihr habt genug nerven für mich! :zwinker:

lg lnaemi :xmas:

mkinzler 19. Nov 2008 14:17

Re: Oracle Passwort ändern!
 
Ohne den Code zu kennen, kann man dir schlecht helfen.

Sherlock 19. Nov 2008 14:24

Re: Oracle Passwort ändern!
 
Simpelster Ansatz ist die Passwörter einfach in einer zusätzlichen Spalte ("alter table xy add column...") im Klartext abzulegen. Das ist aber ein gaaaaanz schlechter Ansatz. Nächst bessere Lösung wäre die Passwörter chiffriert zu speichern, eigentlich auch noch nicht ganz schön. Der verbreiteste Ansatz ist, einen Hash des Passwortes zu speichern.

Dann musst Du halt bei einer Anmeldung prüfen, daß das Hash des Kennwortes dem HAsh in der DB entspricht (Achtung: gleichen Hashalgorithmus verwenden ;)).

Und das wars.

Sherlock

automatix 20. Nov 2008 08:19

Re: Oracle Passwort ändern!
 
Hallo!

So ganz verstehe ich noch nicht, was das Problem ist.
Du hast ein altes Projekt, das erweitert werden soll um diese Passwörter? Dann die Tabelle erweitern wie Sherlock geschrieben hat.

Soll die bestehende Anwendung, die sich ja schon an Oracle anmeldet, erweitert werden um die Passwörter für die Anmeldung an Oracle ändern? Dann kommt es auf die Konfiguration der Oracle Dbm an.

Database Authentication:
ALTER USER "Mustermann" IDENTIFIED BY "Passwort";

Operation System Authentication:
Betriebssystem Funktionen nutzen

Enterprise Authentication:
I don't know, I haven't used

Grüße

lnaemi 20. Nov 2008 08:23

Re: Oracle Passwort ändern!
 
Ich habe den alte code bekommen, wie sie den passwort ändern.
jetzt muss ich halt irgendwie schauen, ob das passwort sonderzeichen hat oder ist mit einem zahl anfängt: :wall:

procedure TfrmMain.btnOkClick(Sender: TObject);
var
query: String;
begin
TRY
if (edtPasswrd.Text = '') Or (edtNewPasswrd.Text = '') Or (edtConfirmation.Text = '') then
Application.MessageBox('Es sind nicht alle notwendigen Felder ausgefüllt!', 'Achtung!')
else begin
if edtNewPasswrd.Text = edtConfirmation.Text then begin
query := '';
query := 'alter user ' + trim(edtUser.Text) + ' identified by ' + trim(edtNewPasswrd.Text);
DM.qryUpdate.SQL.Clear;
DM.qryUpdate.SQL.Add (UpperCase(query));
DM.qryUpdate.ExecSQL;

Application.MessageBox('Ihr Passwort wurde geändert!', 'Achtung');
end
else
Application.MessageBox('Neues Passwort und Bestätingung stimmen nicht überein!', 'Error');
end;

EXCEPT
Application.MessageBox('Benutzername oder Passwort falsch!', 'Error');
END;
end;

ich bin für jede hilfe dankbar! :thumb:

lg lnaemi :xmas:

Sherlock 20. Nov 2008 08:55

Re: Oracle Passwort ändern!
 
Nuja, es geht also um Oracle Passwörter. Den nötigen Befehl dazu hast Du ja in Deinem Code angegeben.
"alter user xy identified by xxxx"

Nun weiss ich grad leider nicht, wie Passwörter in Oracle aufgebaut sein dürfen, aber damit garantiert nix schief geht, solltest Du lieber Variablen verwenden. also nach diesem Schema:
Delphi-Quellcode:
query := 'alter user :MYUSER identified by :MYPASS');
DM.qryUpdate.SQL.Clear;
DM.qryUpdate.SQL.Add (UpperCase(query));
DM.qryUpdate.DeclareVariable('MYUSER', otString); // An dieser Stelle musst Du selber schauen, ob der Typ stimmt
DM.qryUpdate.DeclareVariable('MYPASS', otString); // An dieser Stelle musst Du selber schauen, ob der Typ stimmt
DM.qryUpdate.SetVariabe('MYUSER', trim(edtUser.Text));  //*
DM.qryUpdate.SetVariabe('MYPASS', trim(edtNewPasswrd.Text)); //*
DM.qryUpdate.ExecSQL;
Das wars. Vielleicht noch ein wenig feilen hier und da ;)

Übrigens eine Frage an alle. Was bringt es eigentlich in einem Bezeichner einen Buchstaben wegzulassen? Beispiele mit * markiert. Ich sehe sowas immer wieder und weiss nicht, was ich davon halten soll. Ob es jetzt EditNewPassword oder EdtNewPasswrd heisst, ist doch wirklich egal, wobei erstere Variante jegliche Missverständnisse von vorneherein ausschließt.

Sherlock

ULIK 20. Nov 2008 09:11

Re: Oracle Passwort ändern!
 
Schau Dir doch auch mal das Script $ORACLE_HOME/rdbms/admin/utlpwdmg.sql an und lies den zugehörigen Abschnitt im Oracle Administrator Guide.
Infos: Oracle Passwords

Grüße,
Uli

lnaemi 20. Nov 2008 10:25

Re: Oracle Passwort ändern!
 
Danke für eure Antworten.

ich muss sagen, ich habe bis jetzt kein oracle datenbank gesehen. ich bis sql-Entwicklerin, aber es soll sich nicht viel unterscheiden :shock:

ich werde erst nächste woche vor Ort sein und dann kann ich besser verstehen, wie es dann weiter geht.

aber bitte habt geduld mit mi. :gruebel:

lnaemi 9. Dez 2008 12:53

Re: Oracle Passwort ändern!
 
ich habe alles probiert, oracle erlaubt mir nicht, dass meine passwörter mit zahl beginnen oder sonderzeichen beinhalten.
kann man das ändern, wie?
:wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz