Ziel und Zusammenfassung:
Die Verschlüsselung der Passwörter für die beiden PostgreSQL Benutzer postgres (der PostgreSQL Datenbank-SuperUser) und CrosscapUser (der Benutzer, mit dem der CROSSCAP Enterprise Server im Regelbetrieb auf die Datenbank zugreift) soll von MD5 auf scram-sha-256 umgestellt werden.
Nach einem erfolgreichen Datenbank-Restore aus dem Backup einer frühen PostgreSQL-Version liegen Kennwörter immer noch in der älteren Verschlüsselungsform vor (MD5). Um dies zu ändern muss zuerst die Verschlüsselung des Kennworts für den Datenbank-SuperUser händisch auf scram-sha-256 abgeändert werden. Sobald danach die globalen PostgreSQL Verschlüsselungs-Einstellungen umgestellt werden, kann die PGAdmin-Konsole verwendet werden, um die Verschlüsselung des CROSSCAP Benutzer-Kennworts (und die der Kennwörter weiterer Benutzer, falls vorhanden) ebenfalls zu aktualisieren.
Voraussetzungen:
Die pg_hba.conf ist aktuell/noch auf md5 eingestellt, z.B. so:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
host all all ::0/0 md5
Die pg_hba.conf ist (in der 64 Bit Version) hier zu finden:
C:\Program Files\PostgreSQL\<Version>\data
Schritt 1:
Zuerst die Windows Eingabeaufforderung (cmd.exe) öffnen, dann darin die PostgreSQL-Konsole aufrufen:
C:\“Program Files“\PostgreSQL\<Version>\bin\psql.exe -h localhost -U postgres
Das Passwort des Benutzers postgres wird abgefragt, danach erscheint die SQL-Konsole:
psql (<Version>)
Geben Sie »help« für Hilfe ein.
postgres=#
Schritt 2:
Überprüfung der aktuellen Passwort-Verschlüsselung:
select rolpassword from pg_authid where rolname = 'postgres';
select rolpassword from pg_authid where rolname = 'CrosscapUser';
die Antwort auf beide Abfragen sollte rolpassword … MD5 … lauten
Schritt 3:
Temporäre Umstellung der Verschlüsselungsart:
alter system set password_encryption = 'scram-sha-256'; ()
select pg_reload_conf();
Schritt 4:
Aktualisieren des Kennwortes für den PostgreSQL Datenbank-SuperUser postgres:
alter role postgres with password '<Kennwort>';
Geben Sie das bei der ursprünglichen Installation des PostgreSQL DBMS vergebene oder ein neues Kennwort ein. Sie benötigen dieses Kennwort bei allen Starts der PostgreSQL Administrations-Konsole (PGAdmin).
Schritt 5:
Erneute Überprüfung der aktuellen Passwort-Verschlüsselung:
select rolpassword from pg_authid where rolname = 'postgres';
die Antwort auf diese Abfrage sollte rolpassword … SCRAM-SHA-256 … lauten - da soeben geändert.
select rolpassword from pg_authid where rolname = 'CrosscapUser';
die Antwort auf diese Abfrage sollte rolpassword … MD5 … lauten - da noch nicht geändert.
Lassen Sie bitte die SQL-Konsole für eine spätere, abschließende Überprüfung aller Einstellungen geöffnet!
Schritt 6:
Permanente Umstellung der Verschlüsselungsart:
Die Einträge in der pg_hba.conf abändern auf scram-sha-256, z.B. so:
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 0.0.0.0/0 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
host all all ::0/0 scram-sha-256
Danach das PostgreSQL-DBMS über den Windows Dienste-Manager neu starten. Der Name des zugehörigen Windows-Prozesses lautet z.B. für Version 13: postgresql-x64-13 - PostgreSQL Server 13 …
Schritt 7:
PGAdmin Konsole öffnen, um das Kennwort für die Rolle CrosscapUser erneut (und mit scram-sha-256 verschlüsselt) einzugeben:
Servers > PostgreSQL 1X > Login/Group Roles > CrosscapUser > Rechte Maustaste > Properties
Unter dem Reiter Definition gibt es hier die Möglichkeit, das Benutzer-Kennwort neu zu vergeben:
Das Kennwort für die Rolle CrosscapUser wird unter Verschluss gehalten und kann bei Bedarf per E-Mail beim CROSSCAP Support (support@srz.de) abgefragt werden.
Schritt 8:
Überprüfung, ob die scram-sha-256-Verschlüsselung für alle Benutzer aktiv ist (in der SQL-Konsole):
SELECT rolname, rolpassword ~ '^SCRAM-SHA-256\$' AS has_upgraded FROM pg_authid WHERE rolcanlogin;
die Antwort auf diese Abfrage sollte wie folgt lauten (t steht für True):
rolname | has_upgraded
postgres | t
CrosscapUser | t
Gegenprobe, ob die MD5-Verschlüsselung für alle Benutzer inaktiv ist (in der SQL-Konsole):
SELECT rolname, rolpassword ~ '^md5\$' AS has_upgraded FROM pg_authid WHERE rolcanlogin;
die Antwort auf diese Abfrage sollte wie folgt lauten (f steht für False):
rolname | has_upgraded
postgres | f
CrosscapUser | f
Der CROSSCAP Enterprise Server kann jetzt mit den neuen Einstellungen in Betrieb genommen werden.
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren