Ergebnis 1 bis 6 von 6

Thema: User Passwort anzeigen lassen und ändern

  1. #1
    olden ist offline Neuer Benutzer
    Registriert seit
    25.04.2006
    Beiträge
    7

    Standard User Passwort anzeigen lassen und ändern

    Hallo zusammen

    Ich habe ein Java-Programm mit dem ich DB-Nutzer anlegen und löschen
    kann. Dazu möchte ich das der Nutzer seinen Account selber löschen
    kann aber nur mit seinem gültigen Passwort.

    Also ich will das Passwort für den DB-Nutzer auslesen und vergleichen.
    Wenn es stimmt dann wird der Nutzer gelöscht.

    Nun ist die Frage wie kann ich das Passwort auslesen.Das Passwort ist
    ja auch encryptet...müsste ich dann auch nur die Hash'es vergleichen
    richtig? Da würde sich die Frage stellen wo ich bzw. wie ich
    feststellen kann was postgres für ein Algorithmus zu verschlüsseln
    nimmt.

    Danke für eure Hilfe!

    MfG
    olden

    Nachtrag:

    Das die Passwörter in /var/lib/postgresql/data/global/pg_pwd stehen ist mir
    schon klar, aber mit dem Programm habe ich nicht die Rechte auf diese
    Datei zuzugreifen (will ich auch garnicht).

    Ich möchte halt per DB Befehl mit die Hashes anzeigen lassen als
    Superuser. Der Superuser sollte sowas eigentlich dürfen...

    die Verschlüsslung ist nebenbei gesagt md5, wer lesen kann ist klar im
    Vorteil ops:

  2. #2
    fristo ist offline Super-Moderator
    Registriert seit
    08.12.2005
    Ort
    Raum Frankfurt/Main
    Beiträge
    668

    Standard Re: User Passwort anzeigen lassen und ändern

    Hallo olden,

    Zitat Zitat von olden
    Dazu möchte ich das der Nutzer seinen Account selber löschen kann aber nur mit seinem gültigen Passwort.
    Hast Du dir das auch genau überlegt? Zum löschen einer Datenbank werden die Rechte eines DB-Admins benötigt.

    ---

    Eine Möglichkeit für das Suchen eine Passwortes sind die Systemtabellen der Datenbank. Aber dazu werden auch Rechte eines DB-Admins benötigt. Es ist auch nicht alles in der Doku dokumentiert. Man muss daher schon selber mal die Systemtabellen durchforsten.

    Zudem ist es notwendig alle vom User erstellten Tabellen, Funktionen, ... vorab zu löschen. Probleme treten dann mit Sicherheit auf, wenn andere User auch noch mit den Tabellen, Funktionen, ... arbeiten.

    PS: Der Background der Applikation wurde leider nicht beschrieben.



    mfg

    fristo

  3. #3
    olden ist offline Neuer Benutzer
    Registriert seit
    25.04.2006
    Beiträge
    7

    Standard

    hallo fristo

    ja ich hab mir das gut überlegt. Denn:

    Ich habe pro User 1 Tabelle die angelegt wird wenn sich ein neuer
    Nutzer anmeldet. Da fummelt niemand anderes drinrum.

    Dann über das JavaGUI soll der nutzer halt seinen Account selber löschen.
    Erst löscht er seine Tabelle und dann sich selbst. Das geschiet mit Adminrecht. Das ist schon ok weil der Nutzer nur den Account
    löschen kann dessen Passwort er auch hat.

    Und genau aus diesem Grund will ich an das Passwort. Ich muss natürlich
    bei der Anfrage zum Accountlöschen überprüfen ob nutzername und passwort
    zueinander passen.

    ein SELECT passwd from pg_user; bringt mir allerdings nur *******
    und kein md5 hash.

    Wie zu T****l komm ich denn an diesen doofen Hash?

    Zur Applikation

    Postgresql DB
    |
    Webservice (Java) für die Datenbank
    ----------------------------------------------serverseite
    |
    Internet
    |
    ----------------------------------------------clientseite
    Client (Java) für den Nutzer
    und von diesem Client aus gibts einen button "Account löschen"

    MfG
    olden

  4. #4
    fristo ist offline Super-Moderator
    Registriert seit
    08.12.2005
    Ort
    Raum Frankfurt/Main
    Beiträge
    668

    Standard

    Hallo olden,

    wenn der Nutzer auf dem Client den Button "Account löschen" betätigt ist der doch angemeldet, oder? Damit brauchst Du doch kein Passwort vom User. Und der DB-Admin braucht grundsätzlich kein Passwort um einen User zu löschen. Zudem würde ich aus Gründen der Sicherheit die Aktionen des DB-Admin auf dem Server verlegen.



    mfg

    fristo

  5. #5
    olden ist offline Neuer Benutzer
    Registriert seit
    25.04.2006
    Beiträge
    7

    Standard

    hallo fristo

    wenn der Nutzer auf dem Client den Button "Account löschen" betätigt ist der doch angemeldet, oder?
    Nein isser nicht. Weil er überträgt vom Client eigentlich nur seine
    Wunschaktion (z.B. Eintrag löschen oder account löschen), seinen Loginnamen
    und sein Passwort (xml-encrypted selbstverständlich)
    Und der Server (Webservice) führt dann die eigentliche Aktion aus.

    Ich habe jetzt folgende quick-and-dirty Lösung genommen:

    Wenn der Nutzer seinen Account löschen will, musser ja erst seine
    eigene Tabelle löschen. Dafür muss sein Passwort stimmen. Löst diese
    Aktion keine Exception aus (würde sie ja tun wenn das Passwort falsch
    wäre) dann und nur dann connected sich der Admin und löscht dessen
    Account

    Code:
    try
    {
    cn = DriverManager.getConnection( "jdbc:postgresql:MEINEDB", user, pass );
    st = cn.createStatement();
    String drop = "DROP TABLE blast_"+user+";";
    st.executeUpdate(drop);
    st.close();
    cn.close();
    }
    catch (Exception e)
    {
    setFaultMessage("Error: "+e.getMessage());
    return false;
    }
    			
    try{	
    cn = DriverManager.getConnection( "jdbc:postgresql:MEINEDB", "Admin", "geheim" );
    st = cn.createStatement();
    drop = "DROP USER "+user+";";
    st.executeUpdate(drop);
    st.close();
    cn.close();
    }
    catch (Exception e)
    {
    setFaultMessage("Error: "+e.getMessage());
    return false;
    }
    MfG
    olden

  6. #6
    fristo ist offline Super-Moderator
    Registriert seit
    08.12.2005
    Ort
    Raum Frankfurt/Main
    Beiträge
    668

    Standard

    Hallo olden,

    damit bist Du auf dem richtigen Weg.



    mfg

    fristo

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 12.07.2008, 14:17
  2. explain analyze anzeigen lassen
    Von ipConfig im Forum Programmierung
    Antworten: 6
    Letzter Beitrag: 25.04.2007, 08:24
  3. user postgres could not be created:the user account already exist
    Von praios im Forum Installation von PostgreSQL
    Antworten: 1
    Letzter Beitrag: 31.01.2007, 07:48
  4. User / Passwort für phpgadmin
    Von typewriter im Forum Benutzer- & Rechteverwaltung
    Antworten: 3
    Letzter Beitrag: 24.08.2006, 13:29
  5. Struktur einer Datenbank anzeigen lassen
    Von trauter im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 18.07.2006, 21:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum