我需要将用户 postgres 的密码加密从 scram-sha-265 降级为 md5。
我尝试修改 pg_hba.conf 和 postgresql.conf 文件,将密码加密从 scram-sha-256 更改为 md5 但之后我无法连接到数据库。
我正在使用 PostgreSQL 13 和 PgAdmin 4 v5。
感谢您的帮助和建议!
PS:我必须这样做,因为 RStudio 无法通过 scram 身份验证管理连接。
我按照以下步骤解决了:
在文件
postgresql.conf中将密码_加密更改为
md5
将文件
pg_hba.conf
中出现的前 3 次
scram-sha-256
更改为 trust
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
重启postgresql服务
执行
psql -U postgres
(不会要求您输入密码)
使用命令更改密码
\password username
将文件
pg_hba.conf
中出现的前 3 次
trust
更改为 md5
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
重启postgresql服务
您需要重新加载数据库,然后再次设置用户的密码(可能使用超级用户帐户),以便用户再次拥有 MD5 哈希密码。使用
psql
以超级用户身份连接到数据库,然后:
SELECT pg_reload_conf();
-- to verify the settings are like you want:
SHOW password_encryption;
SELECT * FROM pg_hba_file_rules();
-- change the password
\password myuser
我正在使用 PgAdmin 4 v8
打开 postgresql.conf。默认路径:c/program files/postgresql/14/data
将密码加密从 scram-256 更改为 md5
password_encryption = md5
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
SELECT pg_reload_conf();
ALTER USER your_username WITH PASSWORD 'your_password'