Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Passwort erfragen

  1. #1
    Jens ist offline Benutzer
    Registriert seit
    03.04.2008
    Beiträge
    44

    Frage Passwort erfragen

    Hallo,

    ich möchte einem angemeldeten DB-User die Möglichkeit geben, sein Passwort zu ändern. Dabei soll das alte Passwort abgefragt und verglichen werden.

    Wie kann man im postgres das Passwort des aktuellen Users abfragen, ohne Superuser zu sein ?

    Gibt es eine Lösung für mein Problem ?

    Jens

  2. #2
    symbiont ist offline Erfahrener Benutzer
    Registriert seit
    17.03.2008
    Ort
    NULL
    Beiträge
    1.320

    Standard Ändern ja - Abfragen nein

    PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: ALTER ROLE

    ein superuser darf sofern er CREATEROLE permissions besitzt natuerlich andere (Login-)Rollen, also User, erzeugen und Änderungen durchführen - so auch das Pwd.

    Ein "normaler" User kann sein eigenes Passwort natürlich ändern. Mit dem gleichen Kommando ALTER ROLE ich_selbst SET PASSWORD = ....

    Zu beachten ist, dass das Pwd der Form entsprechen muss wie es PG erwartet - also crypt, md5 oder weiss der Teufel noch.

    Abfragen macht spätestens dann, wenn das Pwd gecrypted ist garkeinen Sinn mehr. Sollte auch nicht möglich sein - ich hoffe mal, dass das auch so ist

  3. #3
    Jens ist offline Benutzer
    Registriert seit
    03.04.2008
    Beiträge
    44

    Frage

    Vielen Dank für die Hilfe,

    aber das löst noch nicht mein Problem, dass ich für den angemeldeten User sein Passwort aus der DB erfragen möchte.

    Jens

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von Jens Beitrag anzeigen
    Vielen Dank für die Hilfe,

    aber das löst noch nicht mein Problem, dass ich für den angemeldeten User sein Passwort aus der DB erfragen möchte.

    Jens
    Du kannst Dir eine function schreiben und diese als db-admin installieren mit security definer, welche das Feld passwd aus pg_shadow für den current_user ausliest. Hab ich jetzt aber nicht getestet, weil dies insofern sinnfrei ist, weil dort das Passwort zwar steht, aber halt verschlüsselt.
    Eines der hier verwendeten Passwörter ist z.B. "md528fd038dce151a6a302b997e8c0b7dc4".


    Hilft Dir das nun weiter?

    Andreas, an sich zweifelnd...
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    symbiont ist offline Erfahrener Benutzer
    Registriert seit
    17.03.2008
    Ort
    NULL
    Beiträge
    1.320

    Standard Ja eben gecrypted

    und aus diesem MD5 laesst sich auch das Passwort nicht rekonstruieren .. das ist ja gerade der Witz an der Geschichte.

    Naja .. er könnte dann höchstens selbst via MD5(passwordtext + loginname) den md5-hash erzeugen und diesen ausgelesenen vergleichen, wenn es darum geht das alte pwd zu bestaetigen ..

  6. #6
    Jens ist offline Benutzer
    Registriert seit
    03.04.2008
    Beiträge
    44

    Cool

    Ich werde die Funktion mal ausprobieren.

    Ich denke aber, dass ich als angemeldeter Nicht-Superuser die Sicht pg_shadow nicht abfragen darf.
    Ich habe versucht als normaler User die Sicht pg_shadow abzufragen, was zu einem Berechtigungsproblem führte.

    Muss eigentlich bei der Berechnung des MD5-Wertes der loginname mit reingenommen werden ?

    Jens
    Geändert von Jens (24.06.2008 um 15:06 Uhr)

  7. #7
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von Jens Beitrag anzeigen
    Ich werde die Funktion mal ausprobieren.

    Ich denke aber, dass ich als angemeldeter Nicht-Superuser die Sicht pg_shadow nicht abfragen darf.
    Deswegen schrieb ich auch security definer.
    PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: CREATE FUNCTION

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #8
    symbiont ist offline Erfahrener Benutzer
    Registriert seit
    17.03.2008
    Ort
    NULL
    Beiträge
    1.320

    Standard genau lesen

    ak schrieb
    Du kannst Dir eine function schreiben und diese als db-admin installieren mit SECURITY DEFINER ...,
    wenn ich das richtig interpretiere, wird die funktion dann mit jenen rechten ausgefuehrt, die der DEFINER hatte, als er sie erzeugte - die funktion. D.g. du musst die funktion mit einem user erzeugen, der die ersehnte tabelle / view anfassen darf

    gruss

  9. #9
    Jens ist offline Benutzer
    Registriert seit
    03.04.2008
    Beiträge
    44

    Lächeln

    Großen Dank für den Hinweis mit security definer.
    Das ist ein Feature, welches mir noch völlig unbekannt war.
    Ich habe es schon ausprobiert und es funktioniert.

    Jens

  10. #10
    Jens ist offline Benutzer
    Registriert seit
    03.04.2008
    Beiträge
    44

    Frage Sicherheit

    Wie groß ist das Sicherheitsproblem, wenn eine Funktion mit security definer erstellt wird ?

    Jens

Seite 1 von 2 12 LetzteLetzte

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