sgf*_*fit 6 postgresql bash installation
因此,我尝试为我的应用程序创建一个安装脚本(针对 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
Run Code Online (Sandbox Code Playgroud)
但这还不够理想。首先,版本号将来会发生变化,因此对目录进行硬编码很差。其次,这使得其他人的项目中的注释成为配置文件的实际结构部分,从所有可能的宇宙中的所有可能的角度来看,这是一个可怕的想法。
所以我的问题是两部分的。首先,是否有一个好的、正确的、可接受的方法来编辑 pg_hba.conf,我可以在安装脚本中使用它,而不是使用文本编辑器进行 kitbashing?
其次,如果第一部分没有好的答案:是否有一种编程方式来询问 postgresql 从哪里提取 pg_hba?
有没有一种编程方式来询问 postgresql 从哪里提取 pg_hba ?
show hba_file;
-- or
select current_setting('hba_file');
Run Code Online (Sandbox Code Playgroud)