Как использовать 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)