如何在 Debian 的 Postgres 10 中使用 scram-sha-256?获取"FATAL: password authentication failed"



我编辑了pg_hba.conf:

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

并添加了以下行:

local   all             username                               scram-sha-256

并且将该文件中的所有CCD_ 2改变为CCD_。

作为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:用户"用户名"的密码验证失败

那么我如何让Postgres在我的Debian9/KDE机器上使用scramb-sha-256呢?早些时候,当我将所有md5保留在pg_hba.conf中时,它就起了作用。

精细手册上写着:

要将现有安装从md5升级到scram-sha-256,在确保所有使用中的客户端库都足够新以支持SCRAM之后,在postgresql.conf中设置password_encryption = 'scram-sha-256',让所有用户设置新密码,并将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)

相关内容

最新更新