Projekt

Allgemein

Profil

Aktionen

Passwörter - Windows Credential Manager » Historie » Revision 1

Revision 1/4 | Weiter »
[E] Axel S, 27.03.2025 17:00


Zugänge (Passwörter)

Ticket: ##22403

Damit Passwörter (für syncro, dblink usw.) aus Sicherheitsgründen nicht mehr im Code hartkodiert werden müssen, sollen diese im Windows-Schlüsselbund (Windows Credential Manager) des Windows Benutzer vom PostgreSQL-Servers hinterlegt werden.

  • dafür gibt es jetzt entsprechende Datenbankfunktionen (Language plpython3u).
  • nur die DB-Rolle postgres soll diese DB-Funktionen direkt rufen dürfen, daher im Schema TSystem_security
  • anonsten können diese DB-Funktionen nur von Funktionen mit dem Parameter SECURITY DEFINER gerufen werden

Eintrag im Windows-Schlüsselbund hinzufügen bzw. überschreiben

  • Funktion TSystem_security.credential__set()
  • Rückgabe:
    • true - Eintrag wurde geschrieben
    • false - kein Eintrag wurde geschrieben; Eintrag mit Kombination aus Service- und Benutzernamen existierte bereits und sollte nicht überschrieben werden
  • Beispiel: SELECT TSystem_security.credential__set( servicename => 'SyncroKonto', username => 'syncro', userpassword => 'geheim', overwrite_pw => true );

Passwort aus entsprechenden Eintrag im Windows-Schlüsselbund auslesen

  • Funktion TSystem_security.credential__get()
  • Rückgabe:
    • <passwort> - Passwort des entsprechenden Eintrags
    • null - es existiert kein Eintrag für die gegebene Kombination aus Service- und Benutzernamen
  • Beispiel: SELECT TSystem_security.credential__get( servicename => 'SyncroKonto', username => 'syncro' );

Eintrag im Windows-Schlüsselbund löschen

  • Funktion TSystem_security.credential__delete()
  • Rückgabe:
    • true - entsprechender Eintrag wurde gelöscht
    • false - kein Eintrag wurde gelöscht; es existiert kein Eintrag für die gegebene Kombination aus Service- und Benutzernamen
  • Beispiel: SELECT TSystem_security.credential__delete( servicename => 'SyncroKonto', username => 'syncro' );

Alle vorhandenen Einträge im Windows-Schlüsselbund auflisten

  • Funktion TSystem_security.credentials__list()
  • Rückgabe:
    • setof Record aus servicename (varchar) und username (varchar)
servicename username
SyncroKonto syncro
  • Beispiel: SELECT * FROM TSystem_security.credentials__list() ORDER BY servicename, username;

Von [E] Axel S vor 8 Tagen aktualisiert · 1 Revisionen