【问题标题】:How to use scram-sha-256 in Postgres 10 in Debian? Getting "FATAL: password authentication failed"如何在 Debian 的 Postgres 10 中使用 scram-sha-256?获取“致命:密码验证失败”
【发布时间】:2019-04-23 03:56:56
【问题描述】:

我编辑了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 都没有像我得到的那样工作:

致命:用户“用户名”的密码验证失败

那么如何让 Postgres 在我的 Debian9/KDE 机器上使用 scram-sha-256?当我将所有md5 保留在pg_hba.conf 中时,它更早地工作了。

【问题讨论】:

  • 或者如果已经配置了日志记录,您将在日志中看到:DETAIL: User "foouser" does not have a valid SCRAM verifier. 实际上,应该将 PostgreSQL 配置为以正确的格式实际存储这些哈希值。
  • 简单的一步一步tutorial如何从md5升级到scram-sha-256

标签: postgresql authentication postgresql-10 sasl-scram


【解决方案1】:

The fine manual 说:

要将现有安装从 md5 升级到 scram-sha-256,在确保所有正在使用的客户端库都足够新以支持 SCRAM 后,在 postgresql.conf 中设置 password_encryption = 'scram-sha-256',让所有用户设置新密码,然后将pg_hba.conf中的认证方式规范改为scram-sha-256

【讨论】:

  • 我记得的另一个问题是用户必须使用添加了对SCRAM 协议的支持的连接库/驱动程序。也许 OP 的 psql 支持 SCRAM 但不支持他们的 pgAdmin
  • 在 postgresql.conf 中设置 'scram-sha-256',重新启动 postgresql 然后更改用户后,它起作用了。我没有在那个配置文件中设置它,因为它并不是从 MD5 到 SCRAM 的真正“升级”,而是新安装并且 password_encryption 行被注释掉了。在重新启动 postgresql 之前更改用户时,我也遇到了同样的错误。确实很清楚;但也许将其移至“scram-sha-256”部分是个好主意,因为我希望找到有关该加密方法的任何信息。
猜你喜欢
  • 2022-07-14
  • 1970-01-01
  • 2023-04-05
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
相关资源
最近更新 更多