Подтвердить что ты не робот

Многочисленные методы проверки подлинности PostgreSQL

Как настроить несколько методов проверки подлинности для одного и того же правила для хоста/базы данных/пользователя? Я хочу иметь возможность войти в систему для моего пользователя postgres, используя как sudo -u postgres psql -U postgres (без ввода пароля PostgreSQL), так и psql -U postgres --password. Что-то вроде следующего в pg_hba.conf:

local   all             postgres                        md5
local   all             postgres                        peer

Я могу использовать только один метод или другой, работающий одновременно.

Спасибо.

(Я использую PostgreSQL 9.1).

4b9b3361

Ответ 1

Неа. Для любой заданной конфигурации поддерживается только один метод auth.

Мне бы очень понравилось, если Pg сможет поддерживать аутентификацию с возвратом, где, если проверка идентификатора завершилась неудачей, вместо md5 auth. На данный момент это не поддерживает, и я подозреваю (я еще не подтвердил), что для его поддержки потребуется изменение протокола.

Что вы можете сделать, это сохранить пароль в файле $HOME/.pgpass для пользователя системы postgres. Дайте ему режим 0600, чтобы он читался только пользователем postgres и root, оба из которых могут получить прямой доступ к файлам базы данных и конфигурации в любом случае. Таким образом, вы получаете простой администратор и md5 auth. В некоторых системах вам может потребоваться установить и создать домашний каталог для пользователя postgres, прежде чем вы сможете это сделать. См. getent passwd postgres, чтобы узнать, имеет ли пользователь postgres homedir, и если да, то где он находится.

( UPDATE: используется для чтения $HOME/.psqlrc - это полезно, но .pgpass подходит для хранения паролей)