Метод аутентификации PostgreSQL по умолчанию

Я установил PostgreSQL с помощью следующей команды:

$ sudo apt install postgresql postgresql-contrib libpq-dev   

Оба help.ubuntu.com и Digitalocean согласен с тем, что после установки Postgres настроен на использование аутентификации идент , что означает, что он связывает роли Postgres с соответствующей системной учетной записью Unix / Linux. Если в Postgres существует роль, имя пользователя Unix / Linux с тем же именем может выполнить вход в качестве этой роли. "

Однако в файле конфигурации аутентификации клиента по умолчанию для аутентификации установлено значение peer или md5 :

$ sudo less /etc/postgresql/10/main/pg_hba.conf
...
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

Я использую PostgreSQL как Разработка базы данных для Ruby on Rails и она отлично работает. Какой метод аутентификации я использую, учитывая, что я никогда не редактировал pg_hba.conf ?

0
задан 3 June 2020 в 18:07

2 ответа

Документ PostgreSQL говорит о идент в своем списке методов аутентификации :

Аутентификация , которая опирается на «Протокол идентификации» (RFC 1413) сервис на компьютере клиента. (На локальном Unix-сокете 1 ) не упоминаются в pg_hba.conf как local , это значение означает исключительно доменные сокеты Unix. Это иногда сбивает с толку, потому что люди часто называют TCP-соединения через localhost (127.0.0.1) локальными.

Они часто по умолчанию настроены на использование пароля, например:

host    all             all             127.0.0.1/32            md5
1
ответ дан 19 June 2020 в 21:31

В настоящее время вы используете аутентификацию по паролю, и вы выбрали алгоритм шифрования md5, и вот процедура для сброса пароля

Переключитесь на пользователя PostgreSQL

на пользователя по умолчанию PostgreSQL, postgres:

su - postgres

, затем попытайтесь соединение с PostgreSQL:

psql

правильный, правильный ответ будет похож на: https://www.postgresql.org/docs/9.1/auth-methods.html

1
ответ дан 19 June 2020 в 21:31

Другие вопросы по тегам:

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