如何从我的网站访问我基于networking的postgresql数据库

我们有使用Postgresql 8.1的基于.Net的局域网应用程序,现在我有任务提供网站上的接口读写两个基于局域网的数据库表我不知道从哪里开始请帮我解决这个问题。

局域网:Windows NT 2003 .Net Postgresql 8.1

网站:PHP 5.3 Mysql

这不是一个精心研究的问题,也不是一个细节。 您应该如何处理这取决于所需的安全级别和您期望的stream量的敏感度。 但是你可以采取一些方法。

  1. 在站点之间build立networking连接(即VPN / ipsec)并直接连接到数据库。
  2. 设置SSH隧道并转发端口。 有点“hackish”,你需要确保SSH隧道自动启动,适合pipe理工作,但这不是一个真正的生产解决scheme。
  3. 添加一个Postgresql服务器到网站LAN并复制这些站点之间的数据( Postgresql复制 )。 这听起来像是一个混乱的解决scheme,因为网站界面需要写入局域网数据库…我假设局域网数据库也需要写在本地。 真的需要一个VPN。
  4. 设置SSL,通过NAT从外部公开Postgresql的SSL端口,从网站连接局域网的外部IP,并通过防火墙上的IP策略locking。 我个人不喜欢暴露数据库在这个庄园,甚至通过SSL,但如果它所拥有的数据不敏感,它可以是一个选项。 使用SSL保护TCP / IP连接

当然,有两个单独的应用程序写入相同的底层数据库通常是一个坏主意 – 你需要正确地lockinglogging,以确保没有数据被覆盖。 在网页应用程序可以请求数据的地方暴露一个API,并告诉局域网应用程序需要做什么更好。 然后,您可以使用身份validation或基于IP的策略将其封装在HTTPS中,并简单地转发比VPN更简单,更可靠的端口。