Por que a autenticação 'trust' do pg_dump falha na raiz e funciona com outro usuário?

1

Eu tenho o comando pg_dump no cron que acessa o PostgreSQL sob o usuário postgres e não fornece uma senha.

pg_dump --username=postgres ...

Eu configurei no pg_hba.conf que o usuário postgres deve ser confiável para todos os bancos de dados do localhost.

local all postgres trust

Quando executo o comando sob o usuário regular, ele funciona.
Quando eu o executo sob o comando root (sudo -i) ele requer senha e, portanto, a tarefa crontab não autentica.

Alguém poderia me explicar o que está acontecendo aqui?

Disclaimer: Eu sou Linux n00b.

    
por Jaroslav Záruba 10.03.2011 / 22:06

1 resposta

3

Esse cara é meu herói: link

The "--host=localhost" option says you're using TCP/IP connection (so the "host lines" of pg_hba.conf), so it's asking for md5 authentication. Hence the password.

If one user is not asked for a password, it could be that this user has a .pgpass file telling pg_dump which password to use.

Em outras palavras, a opção - host (que eu não mencionei) foi a razão pela qual minhas linhas 'locais' em pg_hba.conf eram irrelevantes para este comando.

    
por 24.03.2011 / 11:40