gpt4 book ai didi

postgresql - 用户身份验证如何在 Postgresql 中工作

转载 作者:行者123 更新时间:2023-12-05 07:59:22 26 4
gpt4 key购买 nike

用户/角色在 Postgresql 中究竟如何进行访问控制,它们与在操作系统中提供访问控制的用户有何不同。

安装 Postgresql 时,我可以看到创建了用户 postgres,如/etc/passwd 中所示。

我可以通过 sudo 使用 psql 并查看 Postgres 中的用户/角色。

$ sudo -u postgres psql
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication | {}

这表明存在一个名为 postgres 的角色,但尝试使用它而不是使用 sudo 失败。

$ psql -U postgres
psql: FATAL: Peer authentication failed for user "postgres"

为什么,/etc/passwd中的postgres用户和\du打印出来的postgres角色有什么关系

最佳答案

“postgres”操作系统用户和“postgres”角色之间的联系是:

  1. 它们的拼写相同
  2. 如果你没有为 psql 指定 -U 选项,它默认使用操作系统用户名作为角色名,如果这是你的操作系统用户,它可能是“postgres”。
  3. 如果您在 pg_hba.conf 中指定了“对等”授权(您似乎已经这样做了),那么您必须是该 os 用户才能以该角色登录。如果您不想要该规则,请将其更改为其他内容,例如信任、md5 等。

关于postgresql - 用户身份验证如何在 Postgresql 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068786/

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