Вероятно, хорошей идеей будет оставить пользователя "postgres" с идентификационной аутентификацией. По умолчанию, я считаю, что Ubuntu использует пользователя «postgres» для выполнения обновлений, резервного копирования и т. Д., И для этого требуется, чтобы он мог входить в систему без указания пароля.
Я рекомендую создать другого пользователя (возможно, с вашим собственным именем пользователя) и предоставить ему права администратора. Затем вы можете использовать этого пользователя с паролями для локальных подключений.
Вот как выглядят соответствующие части моего pg_hba.conf:
# allow postgres user to use "ident" authentication on Unix sockets
# (as per recent comments, omit "sameuser" if on postgres 8.4 or later)
local all postgres ident sameuser
# allow all other users to use "md5" authentication on Unix sockets
local all all md5
# for users connected via local IPv4 or IPv6 connections, always require md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Также обратите внимание, что psql -U postgres password
не будет делать то, что вы хотите. Пароль никогда не должен указываться в командной строке. Это попытается войти как пользователь "postgres" в базу данных с именем "password".
Вы должны использовать psql -U postgres myapp
вместо этого. Postgres автоматически запросит у вас пароль, если он настроен должным образом.
Если мы хотим, чтобы пароль был введен автоматически, поместите его в файл $ HOME / .pgpass