1

I've created a Delphi application that runs on multiple client computers across the country. The database it uses is SQL Server which is heavily dependent on stored procedures.

The problem is the DB needs to be on a central server with no application server in the middle - so options like web services are not possible. Also the application must access the database server directly - and all clients must connect to this single database.

How can this be done?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Siavash
  • 358
  • 1
  • 5
  • 19
  • 6
    What's the complication of using MS SQL over TCP/IP? You simply [create an appropriate connection string](http://msdn.microsoft.com/en-us/library/ms191260.aspx). – Cosmin Prund Mar 09 '11 at 11:11
  • Yes, and would you publish your DB server directly on the Internet? Yes, *anybody* could try to connect with the appropriate connection string... hope the question was about security... –  Mar 09 '11 at 14:48

2 Answers2

4

Use a VPN. It will protect the communication channel between your application and the database, while the database is not on the Internet. Once the VPN is active, you can connect to the database as it was local. Expposing the DB server directly on the Internet may be very dangerous, simple scans may identify it and the vulnerability exploit could be tried. There could be a way to achieve something alike using specific security software and appliances, but it could cost far way more than using a VPN. Windows server comes with VPN software in the box (it's in the Routing service), and there are some free solution as well (i.e. OpenVPN). Most firewall/routers have VPN endpoint capabilities - just need to be configured, and usually they support RADIUS authentication, if not Active Directory directly.

  • If this is the answer, then the question needs to be closed for being off topic and sent to SuperUser. And I think this truly is the answer, so I'm upvoting. – Cosmin Prund Mar 09 '11 at 15:45
  • Maybe ServerFault should be the right area - but this is a question that could be interesting to programmers as well, although the answer is "do nothing, there is a solution that does not require changes to your software - just ask your customers to configure their system as per this specs". –  Mar 09 '11 at 16:36
2

Each client must use the TADOConnection component that establishes a connection to the server specified in the ADO connection string.

Jose Rui Santos
  • 15,009
  • 9
  • 58
  • 71
  • 2
    It's not necessary to use ADO components. So each client may use TADOConnection. But ADO is mostly used and it's included in Delphi. –  Mar 09 '11 at 11:14