我有一个包含多个用户的数据库:foo
、bar
和super
. 我正在寻找pg_hba.conf
锁定访问权限。
我想允许foo
并bar
能够通过密码身份验证从任何 IP 进行连接。或在本地使用信任身份验证。
我想允许super
只能使用信任身份验证在本地登录。永远不要来自非本地地址。
我从这个开始。
# TYPE DATABASE USER ADDRESS METHOD
# Allow everything if you're on the same machine.
local all all trust
host all all 127.0.0.1/32 trust
但是,后来我被卡住了,因为我不确定如何说“所有用户,除了超级用户”。我正在寻找这样的东西。
host all not_super all md5
我认为我可以采取的一种方法是foo
明确bar
列出。但是,我想知道是否还有其他方法。
host all foo all md5
host all bar all md5
pg_hba.conf 的处理在第一个匹配规则处停止,所以把你的超级用户放在第一位——仅限本地,信任——然后是其他所有人的规则。
在我看来,这些地址规范太宽泛了。
您应该安排定义用户必须在其中才能连接到这些数据库的网络子网。
您必须枚举超级用户:
应该有一组非常有限的、相当稳定的超级用户。