使用www-data和--host参数进行Postgres访问

时间:2013-08-07 16:20:40

标签: postgresql authentication passwords

我想使用www-data用户访问postgres。该命令由cli发起。

我的程序需要能够启动此命令:

psql --username www-data --host=127.0.0.1 --dbname=dbname

如果我删除了--host = 127.0.0.1,它很有效,不幸的是我使用第三方程序来执行此命令,我可以更改它。

我的pg_hba.conf是标准的     本地所有postgres同行

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
#host   all             www-data         127.0.0.1/32            md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

在postgresql.conf中我放了

listen_addresses = '*'

是的,这是不安全的,但我正在测试一切。仍然无法正常工作

在.pgpass

127.0.0.1:5432:*:www-data:password

我尝试了所有方法:peer,ident,md5,password,我每次都有错误。

错误讯息(法文):

FATAL:  authentification par mot de passe ?chou?e pour l'utilisateur  << www-data >>
mot de passe récupéré dans le fichier fichier « /var/www/.pgpass »

这意味着用户www-data的密码验证失败。它还报告说它能够从pgpass(/var/www/.pgpass)恢复密码。

感谢您的帮助,我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

好的,这是非常愚蠢的。

当我创建createuser命令时,我使用-W而不是-P。我误读了createuser --help :(

当我再次尝试重新创建www-data时,我意识到自己的错误,并且发现密码只被问过一次而不是两次。