如何为同一主机/数据库/用户规则设置多个身份验证方法?我希望能够使用sudo -u postgres psql -U postgres(无需输入PostgreSQL密码)和psql -U postgres --password登录到我的postgres用户.类似于pg_hba中的以下内容.形态:

local   all             postgres                        md5
local   all             postgres                        peer

我只能同时使用一种或另一种方法.

谢谢

(我使用的是PostgreSQL 9.1).

推荐答案

不.任何给定配置只支持一种身份验证方法.

我希望Pg能够支持回退认证,如果身份判断失败,它将允许md5身份验证.不过,目前它还不支持这一点,我怀疑(我还没有验证)需要更改协议才能支持它.

您要做的是将postgres系统用户的密码存储在$HOME/.pgpass文件中.给它设置0600模式,这样它只能被postgres用户和root用户读取,他们都可以直接访问数据库文件和配置.这样你就可以轻松管理and md5认证.在某些系统上,您可能需要为postgres用户设置并创建一个主目录,然后才能执行此操作.如果用户有一个homedir,那么看看它在哪里.

(UPDATE:用于读取$HOME/.psqlrc-这很有用,但.pgpass适用于密码存储)

Postgresql相关问答推荐

如何在postquist中修剪第一/后文件名

Pogresql性能中的枚举与文本数据类型

如何在PostgreSQL 16中设置&Q;VARSIZE&Q;和&Q;SET_VARSIZE&Q;

SQLX::Query!带有UUID::UUID的宏在Rust中编译失败

在Axum 0.5中,如何在一个请求处理程序中同时使用数据库和路径解析?

返回行值和行计数的总和

具有有限字母表的自定义字符串类型

需要用 jack/pgx 更新 golang 中复合类型的 PSQL 行

是否可以短时间运行 VACUUM FULL 并获得一些好处?

我可以使用 Rails 将数组存储在 hstore 中吗

Postgres COPY FROM csv file-No such file or directory

如何在容器内创建 postgres 扩展?

Docker - Postgres 和 pgAdmin 4:Connection refused

在 row_to_json 函数中 Select 查询

如何使用 Node.js 和 Postgresql 找到最后一个插入 ID?

Postgres Npgsql 连接池

PostgreSQL 中跨多个表的索引

什么是 Postgres session?

防止 PostgreSQL 中的递归触发器

IF处或附近的 Postgres 语法错误