我编辑了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)