如何为相同的主机/数据库/用户规则设置多种身份验证方法?我想要能够使用两个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)。
不。对于任何给定的配置,只支持一种验证方法。
我会喜欢它,如果Pg可以支持后退身份验证,如果一个ident检查失败,它允许md5 auth而不是。不过,目前它并不支持这一点,我怀疑(我还没有验证)需要一个协议更改来支持它。
您可以做的是将密码存储在Postgres系统用户的$ HOME / .pgpass文件中。给它0600模式,所以它只能被postgres用户和root读取,两者都可以直接访问数据库文件和配置。这样你就可以轻松管理和md5认证。在某些系统上,您可能必须为postgres用户设置和创建主目录,然后才能执行此操作。请参阅getent passwd postgres以查看postgres用户是否有homedir,如果是,那么它在哪里。