Regelreihenfolge in pg_hba.conf prüfen und sicher neu laden
PostgreSQLSicherheitBefehl
-- File location
SHOW hba_file;
# Rules are read top to bottom and the FIRST matching rule wins;
# specific rules must come BEFORE general ones:
# hostssl appdb web_app 10.10.0.0/16 scram-sha-256
# host all all 10.10.0.0/16 reject
# host all all 0.0.0.0/0 scram-sha-256
-- Validate BEFORE reloading: pg_hba_file_rules reads the file on disk
SELECT line_number, type, database, user_name, address, netmask, auth_method, error
FROM pg_hba_file_rules
ORDER BY line_number;
-- Apply if the error column is empty
SELECT pg_reload_conf();Was es tut
Zeigt vor dem Reload, wo pg_hba.conf liegt, wie PostgreSQL sie interpretiert (Zeile, Typ, Datenbank, Benutzer, Adresse, Methode) und eventuelle Syntaxfehler; lädt dann die Konfiguration neu.
Wann einsetzen
Beim Hinzufügen eines neuen Client-Netzes/einer neuen Anwendung, bei der Migration von md5 auf scram-sha-256 oder bei der Untersuchung von Fehlern 'no pg_hba.conf entry for host'.
Vorsicht
pg_hba_file_rules zeigt die Datei im aktuellen Zustand, nicht die aktiven Regeln. Hat eine Zeile einen nicht leeren error, lädt ein Reload pg_hba.conf überhaupt NICHT, und die alten Regeln bleiben wirksam (das Log meldet 'pg_hba.conf was not reloaded'). Änderungen betreffen nur neue Verbindungen. Eine weit vorn stehende breite Regel (z. B. host all all 0.0.0.0/0 trust) hebelt jede nachfolgende Einschränkung aus. Bei abgeschaltetem SSL können hostssl-Zeilen nicht greifen und zeigen eine Meldung in der Spalte error. Standardmäßig dürfen nur Superuser die View lesen. Achte darauf, dass Tools, die die Datei als root bearbeiten, den Eigentümer nicht ändern; kann der Benutzer postgres sie nicht lesen, schlägt der Reload fehl.
Verwandte Einträge
- Rollenhierarchie nach Least Privilege aufbauen (GRANT + ALTER DEFAULT PRIVILEGES)
- Mandantentrennung mit Row-Level Security einrichten
- SSL/TLS aktivieren und verschlüsselte Verbindungen prüfen (pg_stat_ssl)
- Von md5-Passwörtern auf scram-sha-256 migrieren
- Audit-Logs auf Rollen- und Objektebene mit pgaudit führen