DBAtlas · Atlas de operações de banco de dados

Validar a ordem das regras do pg_hba.conf e recarregar com segurança

PostgreSQLSegurança

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

O que faz

Mostra onde fica o pg_hba.conf, como o PostgreSQL o interpreta (linha, tipo, banco, usuário, endereço, método) e eventuais erros de sintaxe antes do reload; depois recarrega a configuração.

Quando usar

Ao adicionar uma nova rede/aplicação cliente, migrar de md5 para scram-sha-256 ou investigar erros 'no pg_hba.conf entry for host'.

Atenção

pg_hba_file_rules mostra o arquivo como está agora, não as regras ativas. Se alguma linha tiver error não vazio, o reload NÃO carrega o pg_hba.conf de forma alguma e as regras antigas continuam valendo (o log diz 'pg_hba.conf was not reloaded'). As mudanças afetam apenas novas conexões. Uma regra ampla colocada no início (ex.: host all all 0.0.0.0/0 trust) neutraliza todas as restrições depois dela. Com SSL desligado, linhas hostssl não podem corresponder e mostram uma mensagem na coluna error. Por padrão só superusuários podem ler a view. Garanta que ferramentas que editam o arquivo como root não mudem seu dono; se o usuário postgres não conseguir lê-lo, o reload falha.

Abrir no DBAtlas →

Relacionados