【问题标题】:Best way to access MS SQL DB behind a firewall在防火墙后访问 MS SQL DB 的最佳方式
【发布时间】:2015-08-16 20:31:29
【问题描述】:

我有一个多租户应用程序需要访问位于防火墙后面的客户提供的数据库,而不需要用户打开端口等。如果我们自己编写这个,我们正在考虑从我们的应用程序到客户的数据库将是:

  1. 某种具有代理/代理功能的数据抽象层(Hibernate、JPA 等)
  2. JMS 与客户防火墙后某处的软件进行通信
  3. #1 的服务器端
  4. JDBC 到客户的数据库

这是否比简单地通过 SSH 或 VPN 运行 JDBC 更好?任何人都可以推荐现有的开源解决方案来满足我们的需求吗?

谢谢! :)

【问题讨论】:

  • 更新...我们还没有找到完美的解决方案,但我们正在使用带有 OpenVPN 和 NAT 的客户端设备,它可以建立与服务器的安全连接。当 VPN 连接时,我们可以通过 JDBC 连接到他防火墙后面的数据库,但这似乎是一种相当脆弱的方法。

标签: java hibernate security jpa jdbc


【解决方案1】:

最简单的方法是使用SSL connection,因此您可以使用任何数据访问技术:

  • JDBC
  • JPA

您只需要配置一个安全的连接URL:

<property name="hibernate.connection.url">
jdbc:sqlserver://system:port;databaseName=myDb;integratedSecurity=true;encrypt=true;trustServerCertificate=true
</property>

【讨论】:

  • 如果目标数据库位于防火墙后面,连接(SSL 或其他方式)将如何通过?在我们看来,为了对防火墙友好,连接需要从数据库端出站,而不是从客户端入站。是吗?
  • 您要么在客户站点上安装服务器端组件,要么客户端必须只为您的 IP 打开一个端口。该端口将需要身份验证,因此我建议使用 SSL 证书。
  • 是的 - 我们正在寻找您提到的“服务器端组件”......我们希望有一个我们可以在此配置中使用的某种标准代理。不幸的是,即使它很简单,带有开放防火墙端口的 JDBC 也不能满足我们的要求。
猜你喜欢
  • 2011-02-01
  • 2016-12-21
  • 2019-05-29
  • 2017-11-29
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 1970-01-01
相关资源
最近更新 更多