在研究了与Postgresql相关的GUI后,我发现pgadmin 4桌面客户端是一个不错的选择。
我使用的是Ubuntu 16.04服务器(Digital Ocean上的droplet),并且使用iptables防火墙。
如何允许远程计算机访问?我安装有pgadmin的计算机具有动态ip地址。
在研究了与Postgresql相关的GUI后,我发现pgadmin 4桌面客户端是一个不错的选择。
我使用的是Ubuntu 16.04服务器(Digital Ocean上的droplet),并且使用iptables防火墙。
如何允许远程计算机访问?我安装有pgadmin的计算机具有动态ip地址。
你是想从本地网络管理PostgreSQL还是允许来自广域网的其他用户连接到你的PostgreSQL服务器?
允许自己在同一子网上管理服务器非常容易。允许来自广域网的用户访问您的服务器是不明智的。
若要允许远程访问:您需要编辑pg_HBA.conf文件。默认情况下,它仅允许本地用户连接到数据库,这是出于安全考虑的设置。
以下片段来自我的PostgreSQL服务器:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
这意味着只允许与127.0.0.1/32匹配的主机访问我的服务器。
如果您希望允许子网中的所有计算机访问您的Postgresql服务器,您可以执行以下操作:
# IPv4 local connections:
host all all 192.168.0.1/24 md5
以上示例可以让您开始运行,但最好去简要阅读一下postgresql文档中关于pg_hba.conf文件的内容。
如果您特别鲁莽和不负责任,并且喜欢冒险并经常感到恐惧和憎恶,那么您可以在pg_hba.conf文件中使用以下行,尽管我强烈反对这样做。
# IPv4 local connections:
host all all 0.0.0.0/0 md5
这基本上意味着“来自任何地方的任何人都可以访问我的Postgresql服务器”,我提供它只是为了说明需要多么谨慎。
当前版本的Postgresql 9.6文档可以在此处找到以前的版本也可在该链接附近找到,但在pg_hba.conf的情况下,似乎在版本之间没有发生变化。
我想要通过像pgadmin这样的客户端从远程桌面计算机连接到我的云托管Postgresql数据库。
为了实现这一点,我通过以下命令在iptables中打开了5432端口:
iptables -I INPUT 1 -m tcp -p tcp --dport 5432 -j ACCEPT
service iptables save
service iptables restart
nano /etc/postgresql/9.5/main/postgresql.conf
将listen_address修改为如下内容:
listen_addresses = '*'
service postgresql restart