配置 – 我可以在pg_hba.conf中为同一个PostgreSQL本地用户启用peer和md5身份验证吗?

前端之家收集整理的这篇文章主要介绍了配置 – 我可以在pg_hba.conf中为同一个PostgreSQL本地用户启用peer和md5身份验证吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想让Postgresql(超级用户)使用“peer”或“md5”身份验证方法进行身份验证,最好在两种情况下都使用本地Unix域套接字.问题是pg_hba.conf中条目的顺序很重要,并且将应用第一个匹配.

是)我有的:

# TYPE    DATABASE   USER      ADDRESS   METHOD
  local   all        harold              peer
  local   all        all                 md5

我想要什么(语法无效):

# TYPE    DATABASE   USER      ADDRESS   METHOD
  local   all        harold              peer-or-md5
  local   all        all                 md5

以下是有关我们希望在以下环境中使用的环境的更多详细信息:

在此特定服务器上,所有数据库都相对较小(每个数据<10MB)并且纯粹是只读的.每天晚上都会被哈罗德的超级用户丢弃并重新创建. harold也是一个系统帐户,因此“peer”可以很好地用于无密码cronjobs等.然后有一个访问数据库的Web界面:这使用md5身份验证(系统用户是webserver,pg用户名,密码和db名称由访客).现在我想让harold用户通过Web界面登录.由于harold的“同伴”设置,这失败了. 目前的解决方法是让web接口通过TCP连接,使用

# TYPE    DATABASE   USER      ADDRESS        METHOD
  host    all        all       127.0.0.1/32   md5
  host    all        all       ::1/128        md5

除了第一个例子中的本地条目.这样可行,但我宁愿在这里使用本地套接字 – 因为性能和直觉,这似乎是正确的事情.

这可能吗?我们有更好的解决方法吗?

根据 similar StackOverflow question,答案是否定的,您不能为相同类型,数据库,用户和地址启用两种类型的身份验证.

StackOverflow问题建议在用户的主目录中使用.pgpass文件并使用md5身份验证,但我不确定它是否一定适用于cron作业.

猜你在找的Postgre SQL相关文章