如何配置 PostgreSQL 以接受除 postgres / admin 之外的所有传入连接

How to configure PostgreSQL to accept all incoming connections except postgres / admin

我的问题是如何配置它,以便非管理员(非 postgres)帐户可以从互联网登录,但管理员(postgres)用户只能从本地主机或有限的 IP 范围登录。 pg_hba.conf 中的哪些条目让我可以进行设置?我已经在 postgresql.conf:

中进行了设置
listen_addresses = '*'

我还在我的 pg_hba.conf 中添加了这条线,以允许从广阔的世界登录:

host all all 0.0.0.0/0 md5

但现在 postgres 用户可以从任何地址登录,这不是我想要的 :(

我看到很多地方都在谈论如何为来自任何地址的连接打开 PostgreSQL,例如:https://dba.stackexchange.com/questions/83984/connect-to-postgresql-server-fatal-no-pg-hba-conf-entry-for-host 但没有打开它并锁定 postgres 用户的问题。

尝试:

# "local" is for Unix domain socket connections only
local   all             postgres                                trust
# IPv4 local connections:
host    all             postgres        0.0.0.0/0               reject 
host    all             all             0.0.0.0/0               md5