psql: fe_sendauth: никакой пароль не предоставляется

Решенный путем добавления этого к конфигурации nginx:

proxy_set_header Host $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
19
задан 25 July 2013 в 13:16
3 ответа

sudo не сохраняет большинство переменных среды. Если вы хотите указать переменные среды для команды, выполняемой под sudo , сделайте это с помощью sudo :

sudo PGPASSWORD="postgres" -u postgres psql -d pg_ldap -w --no-password -h localhost -p 5432 -t -c "SELECT id FROM radusers WHERE id=1"

Разрешает ли sudo это будет зависеть от политика безопасности, действующая на вашем сайте.

Я не рекомендую этот подход, поскольку он показывает пароль в истории командной строки и в списке процессов. Намного лучше использовать файл .pgpass или, предпочтительно, установить pg_hba.conf для аутентификации однорангового узла локальных подключений от пользователя postgres .

Вы можете использовать файл .pgpass , но это должен быть .pgpass пользователя, которого вы sudo 'ing to, а не пользователь вы' re sudo ing из ; в данном случае это должно быть ~ postgres / .pgpass . Подумайте об этом: psql , запущенный как postgres , не знает, что вы запускали его через sudo из своей учетной записи, он не знает, какая у вас учетная запись, и даже если это так, у него нет разрешения на чтение, поскольку у пользователя postgres до ~ youruser / .pgpass .

Кроме того, -w то же самое как - без пароля . Нет смысла указывать и то, и другое.

он не знает, какая у вас учетная запись пользователя, и даже если он знает, у него нет разрешения на чтение от пользователя postgres до ~ youruser / .pgpass .

Кроме того, -w то же самое, что и - без пароля . Нет смысла указывать и то, и другое.

он не знает, какая у вас учетная запись пользователя, и даже если он знает, у него нет разрешения на чтение от пользователя postgres до ~ youruser / .pgpass .

Кроме того, -w то же самое, что - без пароля . Нет смысла указывать и то, и другое.

15
ответ дан 2 December 2019 в 20:19

Это происходит, если пароль для базы данных не указан.

default="postgres://postgres:password@127.0.0.1:5432/DBname"

1
ответ дан 12 March 2020 в 09:42

Я даже пытался настроить файл .pgpass в моем домашнем каталоге , но безуспешно:

Вам нужно создать файл .pgpass в домашнем каталоге учетной записи, в которой выполняется команда psql , то есть учетной записи postgres , а не вашей!

psql -d pg_ldap -w - no-password ...

Я думаю, что эти параметры тоже могут сбивать с толку.

Оба значения означают одно и то же, а именно: «не используйте пароль».

Я предлагаю удалить их. psql подтвердит, что пароль требуется, но должен определить правильно размещенный файл .pgpass и использовать его вместо , запрашивающего у пароль.

И, конечно же, пароль вашей учетной записи postgres не на самом деле "postgres", не так ли? :-)

0
ответ дан 13 March 2020 в 10:23

Теги

Похожие вопросы