PostgreSQL 多种身份验证方式

32

我该如何为同一主机/数据库/用户规则设置多种身份验证方法? 我想要能够使用 sudo -u postgres psql -U postgres(无需输入PostgreSQL密码)和 psql -U postgres --password 来登录到我的postgres用户。 在pg_hba.conf中类似以下的东西:

local   all             postgres                        md5
local   all             postgres                        peer

我只能同时让其中一种方法工作。

谢谢。

(我正在使用PostgreSQL 9.1)。

1个回答

30

不行,对于任何给定的配置,只支持一种身份验证方法。

如果Pg可以支持回退身份验证的话,就可以在标识检查失败时允许md5身份验证。但它目前不支持这种方式,我猜测(我没有验证过)需要进行协议更改才能实现。

你可以将密码存储在$HOME/.pgpass文件中,为postgres系统用户设置模式0600,这样只有postgres用户和root用户可以直接访问数据库文件和配置文件,并且获得易于管理的管理员身份验证和md5身份验证。在某些系统上,您可能需要为postgres用户设置并创建主目录才能执行此操作。使用getent passwd postgres命令查看是否已为postgres用户设置主目录以及如果设置了,则其位置在哪里。

更新: 原来是$HOME/.psqlrc,虽然也很有用,但.pgpass适合于密码存储)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接