所以,我正在尝试为我的应用程序(针对 Ubuntu 16)创建一个安装脚本。它必须创建一个 postgresql 用户,授予该用户通过密码进行身份验证的权限,并授予该用户在本地进行身份验证的权限。我只想授予在一个数据库(应用程序数据库)上执行此操作的权限。因此,我需要在拒绝未知连接的行上方插入行 local databasename username md5
,例如,在 pg_hba.conf 的“将您的实际配置放在这里”部分。
(pg_hba.conf
使用文件中的位置来确定优先级:遇到的第一个与连接匹配的规则给出最终结果。)
要添加这一行,我的脚本运行:
sudo awk '
/# Put your actual configuration here/ {
print "local databasename username md5"
}
{ print }
' /etc/postgresql/9.5/main/pg_hba.conf
# other setup
service postgresql restart
但这还不够理想。首先,版本号将来会改变,所以硬编码目录很差。其次,将其他人的项目中的评论作为配置文件的实际结构部分,从所有可能的宇宙中的所有可能的观点来看,这是一个可怕的想法。
所以我的问题分为两个部分。首先,是否有一种好的、正确的和可接受的方法来编辑 pg_hba.conf,我可以在安装脚本中使用它,而不是使用文本编辑器进行 kitbashing?
其次,如果第一部分没有好的答案:是否有编程方式询问 postgresql 从哪里拉取 pg_hba?
最佳答案
Is there a programmatic way to ask postgresql where it's pulling pg_hba from?
show hba_file;
-- or
select current_setting('hba_file');
关于bash - 编辑 pg_hba.conf 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988912/