原文地址:https://blog.dbi-services.com/updating-password-in-postgresql-from-md5-to-scram-sha-256/
原文作者:Karsten Lenz
大多数数据库使用者都有安装许多主流 的PostgreSQL版本的历史。随着PostgreSQL 10的出现,scram-sha-256用于哈希密码,通过从软件包安装scram-sha-256,其中自PostgreSQL 13以来,scram-sha-256作为 安装的默认设置。
通过这个小博客,我将描述如何将密码从md5更新到scram-sha-256。对于PostgreSQL的安装,dbi上有许多博客或dbi的文章,本文不做阐述。
PostgreSQL中的密码在pg_authid表中列出,对于这个博客,我用一个用户测试。
可见,在md5中对密码进行了哈希处理。
主要针对ip范围,有时也针对指定用户,通过pg_hba.conf定义绑定类型、数据库、用户、地址及方法。
第一步,我们需要将参数password_encryption从 md5 切换到 scram-sha-256。
生效配置。
但在更新所有受影响的密码之前,请暂不修改pghba中配置
更新密码以从md5更改为scram-sha-256。
检查新生成的hash值
修改pg_hba.conf配置
重载配置
现在密码加密方式从md5到scram-sha-256所有的操作都已完成。
在许多情况下,旧系统通过使用pg_dump和pg_restore迁移到完整的新环境,新的操作系统,最新的PostgreSQL版本。在这种情况下,可以使用 pg_dumpall -r >用户或 pg_dumpall -仅角色>用户.sql.sql将所有用户迁移到新环境。
这些文件可以使用psql -f用户导入.sql,会有一条错误消息,postgres用户退出,但这可以被忽略。所有这些导入的用户仍将具有 md5 哈希密码,因此之后直接更新这些用户密码是有意义的。
评论
