2011-03-09 50 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