Zil*_*ilk 16 postgresql configuration
我想让 PostgreSQL(超级)用户使用“peer”或“md5”身份验证方法进行身份验证,最好在两种情况下都使用本地 Unix 域套接字。问题是 pg_hba.conf 中条目的顺序很重要,将应用第一个匹配项。
我拥有的:
# TYPE DATABASE USER ADDRESS METHOD
local all harold peer
local all all md5
Run Code Online (Sandbox Code Playgroud)
我想要什么(无效的语法):
# TYPE DATABASE USER ADDRESS METHOD
local all harold peer-or-md5
local all all md5
Run Code Online (Sandbox Code Playgroud)
以下是有关我们希望在其中使用它的环境的更多详细信息:
在这个特定的服务器上,所有数据库都相对较小(每个数据<10MB)并且是纯只读的。哈罗德超级用户每天晚上都会丢弃并重新创建它们。harold 也是一个系统帐户,因此“peer”适用于无密码的 cronjobs 等。然后有一个 Web 界面访问数据库:这使用 md5 身份验证(系统用户是网络服务器,pg 用户名、密码和数据库名称由访客)。现在我想让 harold 用户也通过 Web 界面登录。由于 harold 的“对等”设置,这失败了。
当前的解决方法是让网络界面通过 TCP 连接,使用
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
除了第一个示例中的本地条目。这行得通,但我也更愿意在这里使用本地套接字 - 出于性能考虑,并且因为直觉认为这似乎是正确的做法。
这可能吗?有没有更好的解决方法?
小智 11
根据一个类似的 StackOverflow question,答案是否定的,您不能为相同类型,数据库,用户和地址启用两种类型的身份验证。
StackOverflow 问题建议使用.pgpass用户主目录中的文件并使用 md5 身份验证,但我不确定这是否一定适用于 cron 作业。
| 归档时间: |
|
| 查看次数: |
4446 次 |
| 最近记录: |