gpt4 book ai didi

postgresql - pgsql 如何与不在 pgpass.conf 中的用户名连接,而无需指定密码?

转载 作者:行者123 更新时间:2023-11-29 14:31:37 24 4
gpt4 key购买 nike

我可以使用不在 pgpass.conf 文件中的帐户使用 psql 连接到数据库,而无需指定密码。我想被提示输入密码。这怎么可能?

psql -U mike -d employees

我已确认 psql 使用“mike”帐户连接:

employees=> \conninfo
You are connected to database "employees" as user "mike" on host "localhost" at port "5432".

我已确认该帐户有密码。

select * from pg_shadow;

postgres=# select * from pg_shadow;
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig
------------------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+-----------
mike| 59736 | f | f | f | f | md5c223b8b4c619d6c9ffb4cf3522284be6 | |

我已确认我的文件系统上只有一个 pgpass.conf 文件。

设置:

  • Windows 10。
  • x86_64-pc-mingw64 上的 PostgreSQL 10.4,由 gcc.exe 编译(Rev5,由 MSYS2 项目构建)4.9.2,64 位

最佳答案

在上面的评论部分由 Laurenz Albe 提供。

问题是因为 pg_hba.conf 中的设置。基本上需要改变的是

  • 信任 -> scram-sha-256

这是我修复它的方法。这很棘手。更改 pg_hba.conf 中的设置是比较容易的部分。困难的部分是重新加密数据库中的现有密码以匹配新设置,以便以后仍可使用它们登录。

  1. 保留 pg_hba.conf 中的设置。
  2. 连接到数据库使用“psql -U postgres”发出了这些命令:
    • 将 password_encryption 设置为“scram-sha-256”;
    • 使用密码“currentPassword”更改用户 postgres;
    • 使用登录加密密码“mikesCurrentPassword”更改角色 mike;
  3. 修改 pg_hba.conf 文件更改 'trust'到“scram-sha-256”。

进一步说明:无需重置服务器即可启用对 pg_hba.conf 所做的更改。

关于postgresql - pgsql 如何与不在 pgpass.conf 中的用户名连接,而无需指定密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50933567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com