PostgreSQL 将密码加密从 SCRAM 降级为 md5

问题描述 投票:0回答:3

我需要将用户 postgres 的密码加密从 scram-sha-265 降级为 md5

我尝试修改 pg_hba.confpostgresql.conf 文件,将密码加密从 scram-sha-256 更改为 md5 但之后我无法连接到数据库。

我正在使用 PostgreSQL 13 和 PgAdmin 4 v5。

感谢您的帮助和建议!

PS:我必须这样做,因为 RStudio 无法通过 scram 身份验证管理连接。

postgresql md5 psql password-encryption postgresql-13
3个回答
9
投票

我按照以下步骤解决了:

在文件

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服务


4
投票

您需要重新加载数据库,然后再次设置用户的密码(可能使用超级用户帐户),以便用户再次拥有 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

0
投票

我正在使用 PgAdmin 4 v8

  1. 打开 postgresql.conf。默认路径:c/program files/postgresql/14/data

  2. 将密码加密从 scram-256 更改为 md5

password_encryption = md5

  1. 打开pg_hba.conf
  2. 将方法从 scram-256 更改为 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
  1. 打开 pgadmin4 并运行此查询:

SELECT pg_reload_conf();

  1. 然后运行此查询

ALTER USER your_username WITH PASSWORD 'your_password'

© www.soinside.com 2019 - 2024. All rights reserved.