DBAtlas · Atlas de operaciones de bases de datos

Validar el orden de las reglas de pg_hba.conf y recargar con seguridad

PostgreSQLSeguridad

Comando

-- 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();

Qué hace

Muestra dónde está pg_hba.conf, cómo lo interpreta PostgreSQL (línea, tipo, base de datos, usuario, dirección, método) y los errores de sintaxis antes del reload; después recarga la configuración.

Cuándo usarlo

Al añadir una nueva red cliente/aplicación, migrar de md5 a scram-sha-256 o investigar errores 'no pg_hba.conf entry for host'.

Precaución

pg_hba_file_rules muestra el archivo tal como está ahora, no las reglas activas. Si alguna línea tiene un error no vacío, el reload NO carga pg_hba.conf en absoluto y las reglas antiguas siguen vigentes (el log dice 'pg_hba.conf was not reloaded'). Los cambios solo afectan a las conexiones nuevas. Una regla amplia colocada al principio (p. ej., host all all 0.0.0.0/0 trust) anula todas las restricciones posteriores. Con SSL desactivado, las líneas hostssl no pueden coincidir y muestran un mensaje en la columna error. Por defecto solo los superusuarios pueden leer la vista. Asegúrese de que las herramientas que editan el archivo como root no cambien su propietario; si el usuario postgres no puede leerlo, el reload falla.

Abrir en DBAtlas →

Relacionado