bash - 编辑 pg_hba.conf 的正确方法

标签 bash postgresql 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

但这还不够理想。首先,版本号将来会改变,所以硬编码目录很差。其次,将其他人的项目中的评论作为配置文件的实际结构部分,从所有可能的宇宙中的所有可能的观点来看,这是一个可怕的想法。

所以我的问题分为两个部分。首先,是否有一种好的、正确的和可接受的方法来编辑 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/

相关文章:

java - 一对多的 Hibernate 持久性很慢

python - 在 Mac OSX 10.6 上安装 Python 2.7 成像模块时出错

java - 适用于 Windows 的 JDK/JRE 安装

android - 使用sed操作xml文件

Bash:如何使用连字符 (-) 取消设置 env 变量?

python - 如何防止在 python 退出时在 bash 中执行按键

c# - C# Npgsql 传递的复合类型数组作为存储过程输入

SQL 可选连接和默认值

java - 如何在 Linux 中为我的应用程序创建安装程序

bash - 在 Psql 输出中禁用换行