DBAtlas · Atlas für Datenbankbetrieb

Regelreihenfolge in pg_hba.conf prüfen und sicher neu laden

PostgreSQLSicherheit

Befehl

-- 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.

In DBAtlas öffnen →

Verwandte Einträge