我正在使用 rpm 安装程序在 RedHat Linux 上安装 PostgreSQL,并尝试让除“postgres”之外的系统用户(例如“dbuser5”)拥有和运行该应用程序。似乎我可以在安装后更改 postgres 应用程序和数据库文件的权限,但 /etc/init.d/postgresql 脚本仍将引用 postgres 系统用户。由于可能还有其他文件引用此默认系统用户,我希望有更好的方法来做到这一点。
最好的情况下,我希望在安装过程中进行配置,但如果我必须在安装后进行配置,那么也应该可以。
答案1
停止数据库服务器,更改 Postgres 数据目录的所有权,更新启动脚本以引用正确的用户,然后重新启动数据库服务器。
记录你的更改因此,那些期望 Postgres 作为传统 Postgres 用户帐户运行的人不会感到不愉快。
如果您正在使用 RedHat 的打包 Postgres 安装(从 yum/RPM 安装),您将需要注意这一变化,并确保在升级时检查启动脚本以确保它没有被覆盖。
答案2
我即将测试这种方法,但看起来 PostgreSQLpg_ident.conf
文件可用于将所需的 OS 用户名映射到 RPM 安装的默认数据库用户名,例如postgres
。
https://www.postgresql.org/docs/current/auth-username-maps.html