2011-03-09 42 views
1

我创建了一个在全国多个客户端计算机上运行的Delphi应用程序。它使用的数据库是严重依赖存储过程的SQL Server。使用Delphi直接连接到远程SQL Server

问题是数据库需要位于中央服务器上,中间没有应用程序服务器 - 因此Web服务等选项是不可能的。此外,应用程序必须直接访问数据库服务器 - 并且所有客户端都必须连接到此单个数据库。

这怎么办?

+6

通过TCP/IP使用MS SQL的复杂性是什么?您只需[创建适当的连接字符串](http://msdn.microsoft.com/en-us/library/ms191260.aspx)。 – 2011-03-09 11:11:33

+0

是的,你会直接在互联网上发布你的数据库服务器吗?是的,*任何人*都可以尝试连接适当的连接字符串...希望这个问题是关于安全性的...... – 2011-03-09 14:48:42

回答

4

使用VPN。它将保护应用程序和数据库之间的通信通道,而数据库不在Internet上。一旦VPN处于活动状态,您就可以连接到本地的数据库。 在互联网上直接提交数据库服务器可能是非常危险的,简单的扫描可能会识别它并且可以尝试漏洞利用。有可能通过使用特定的安全软件和设备来实现类似的方式,但与使用VPN相比,它可能花费更多。 Windows服务器随附了VPN软件(位于路由服务中),并且还有一些免费的解决方案(即OpenVPN)。大多数防火墙/路由器都具有VPN端点功能 - 只需要进行配置,并且通常它们支持RADIUS身份验证,如果不是Active Directory直接支持。

+0

如果这是答案,那么该问题需要关闭,因为脱离主题并发送给超级用户。我认为这是真正的答案,所以我在投票。 – 2011-03-09 15:45:57

+0

也许ServerFault应该是正确的领域 - 但这也是一个程序员可能会感兴趣的问题,尽管答案是“什么也不做,有一个解决方案不需要修改软件 - 只需要你的客户配置他们的系统按照这个规格“。 – 2011-03-09 16:36:22

2

每个客户端都必须使用TADOConnection组件建立与ADO连接字符串中指定的服务器的连接。

+2

没有必要使用ADO组件。所以每个客户都可以使用TADOConnection。但是ADO大部分都是使用的,它包含在Delphi中。 – 2011-03-09 11:14:26