连接到 postgres 数据库有哪些可能性

What possibilities are there to connect to a postgres database

我想知道:连接到 postgres 数据库有哪些可能性?

我清楚地知道至少有两种可能性。

  1. 第一种可能性是粗暴的:打开一个端口,让用户匿名进行更改。
  2. 第二种方法是创建一个使用 SQL 命令与 postgres 通信的网站。

我在 Internet 上找不到更多选项,所以我想知道是否有其他选项。我很好奇是否存在其他选项。因为也许这些选项之一是通过互联网与 postgres 通信的最佳解决方案。

我认为这更像是一个 networking/security 类型的问题。

  1. 您可以让您的数据库完全暴露在 Internet 上,这通常不是一个好主意,除非您只是为了好玩而不介意它在某些时候被完全控制。我认为这就是您问题的选项 1 的意思。
  2. 您可以在前面设置一个防火墙,只对某些传入 IP 公开它。这稍微好一点,但对于数据库来说仍然感觉有点暴露,尤其是当上面有敏感数据时。
  3. 如果需要与数据库交互的人数有限,您可以对其进行完全防火墙保护,但允许 SSH 连接到内部网络(可能是同一台服务器),然后通过 ssh 隧道进行端口转发.如果您需要向数据库网络外部的人员提供完全的数据库访问权限,这通常是最好的方法,因为通过为每个传入连接使用 public/private 密钥对,SSH 比直接数据库连接更安全。您还可以仅允许来自特定 IP 的 SSH 通过您的防火墙作为附加的安全级别。
  4. 与 SSH 类似,您可以建立一个 VPN 并允许访问数据库所在的 LAN,并通过 VPN 控制访问。
  5. 如果您有更广泛的受众,您可以不允许外部访问数据库(除了您或 DBA/Administrator 类型的人通过 SSH 隧道或 VPN)。然后通过一个网站建立访问,在该网站上与数据库的通信是在服务器端脚本(php、node.js、rails、.net、你有什么)上完成的。这是通常的网站设置,每个网站都使用其背后的数据库。我假设这就是你在问题的选项 2 中的意思。