No PostgreSQL, tenho a seguinte configuração em pg_hba.conf
:
local all sec_eng scram-sha-256
host all sec_eng scram-sha-256
hostssl all app_server 192.168.1.0/32 scram-sha-256 clientcert=verify-full
Não há outras linhas de configuração.
Quando tento me conectar ao PostgreSQL usando sudo psql -U sec_eng
, o cliente me autentica como um peer
, e não me solicita nenhuma senha e, portanto, a autenticação falha.
Se eu tentar, sudo psql -U sec_eng -h localhost
serei autenticado como Ident
, não serei solicitado a digitar uma senha e, portanto, a autenticação falhará.
O que estou fazendo errado aqui? Como posso conectar ao PostgreSQL por meio de um Socket Unix, usando meu nome de usuário e uma senha?
É, de fato, o
pg_hba.conf
arquivo que controla a autenticação do Postgres, mas o que é incerto é onde ele está localizado em uma instalação específica. Por padrão, é um diretório de dados , mas isso pode ser alterado de várias maneiras .Você pode obter o valor atual (caminho completo para o arquivo) como um
hba_file
parâmetro de configuração, se você puder se conectar ao servidor. Para isso, autentique-se como um superusuário (postgres
) ou como qualquer usuário que seja membro dapg_read_all_settings
função e emitaou
(
\x
habilita saída estendida, então ela será mostrada em forma de colunas, mais fácil de ler neste caso). Veja a descrição da visualizaçãopg_settings
para entender a saída.