我正在尝试在我的 Postgres 9.5.7 数据库(运行 Ubuntu 16.04)上禁用远程客户端访问。
我做了我认为正确的更改(见下文)但无济于事。我可以想到我的更改不起作用的两个原因:
我以为我排除了这些,但远程客户端仍然可以通话。那么我错过了什么?
实际上,我想要做的是恢复启用远程客户端访问的更改,以便我可以捕获这些更改并使用我们的盐堆栈重新应用它们。在我开始通过 salt 运行部署测试之前,我想知道远程访问被禁用,以便我可以确信我的 salt 堆栈正在进行更改。
一些数据
我正在使用我正在编辑的相同配置文件启动 postgres(ps重新格式化输出以提高可读性)
postgres@testweb:~$ ps -eaf | grep bin/post
postgres [snip] /usr/lib/postgresql/9.5/bin/postgres
-D /var/lib/postgresql/9.5/main
-c config_file=/etc/postgresql/9.5/main/postgresql.conf
Run Code Online (Sandbox Code Playgroud)
postgres 配置为仅侦听 localhost 端口(之前是 '*')
postgres@testweb:~$ grep listen_addresses /etc/postgresql/9.5/main/postgresql.conf
listen_addresses = 'localhost' # what IP address(es) to listen on;
Run Code Online (Sandbox Code Playgroud)
基于主机的身份验证设置为 localhost。如果我禁用访问,这应该无关紧要,对吗?我的理解是,如果listen_addresses='localhost'那时远程客户端访问将不起作用。
postgres@testweb:~$ grep ^host /etc/postgresql/9.5/main/pg_hba.conf
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
我正在编辑正确的配置文件,但 listen_addresses 声称 *
postgres@testweb:~$ sql
psql (9.5.7)
Type "help" …Run Code Online (Sandbox Code Playgroud)