Как использовать scram-sha-256 в Postgres 10 в Debian? Получение "FATAL: проверка пароля не пройдена"

Я редактировал pg_hba.conf:

sudo su postgres
nano /etc/postgresql/10/main/pg_hba.conf

и добавил эту строку:

local   all             username                               scram-sha-256

и изменил все md5 в scram-sha-256 в этом файле.

Как postgres Пользователь, я создал нового пользователя с правами суперпользователя:

sudo su postgres
psql

CREATE USER username WITH SUPERUSER PASSWORD 'password';

Затем я перезапустил Postgres:

/etc/init.d/postgresql restart

и попытался войти с помощью pgAdmin4, где я изменил имя пользователя в свойствах соединения базы данных. Но ни то ни psql -U username testdb < ./testdb.sql работать как я получаю

FATAL: аутентификация по паролю не удалась для пользователя "username"

Итак, как мне заставить Postgres работать с scram-sha-256 на моем компьютере с Debian9/KDE? Это работало раньше, когда я оставил все md5 в pg_hba.conf как они были.

2 ответа

Решение

Прекрасное руководство говорит:

Чтобы обновить существующую установку с md5 в scram-sha-256, убедившись, что все используемые клиентские библиотеки достаточно новые для поддержки SCRAM, установите password_encryption = 'scram-sha-256' в postgresql.confзаставьте всех пользователей устанавливать новые пароли и изменять спецификации метода аутентификации в pg_hba.conf в scram-sha-256,

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

Также проверьте текущий формат хэша пароля:

      postgres=# select passwd from pg_shadow where usename='username';
passwd
--------------
md5...

postgres=# set password_encryption = 'scram-sha-256';
SET
postgres=# alter user username with password 'secretpass';
ALTER ROLE
postgres=# select passwd from pg_shadow where usename='username';
passwd
--------------------------
SCRAM-SHA-256$...
(1 row)
Другие вопросы по тегам