Solved

Connecting to a database server through a proxy.

Posted on 2009-07-01
6
454 Views
Last Modified: 2013-11-13
I normally connect to a SQL server from a C# or VB app using a connection string such as:
Data Source=<ServerIP,Port>;TRUSTED_CONNECTION=no;Persist Security Info=False;Initial Catalog=DBName;User ID=john;password=1234

This does not work when there is a proxy at the client side that blocks access through to the Internet.

All solutions I have found suggest that the client side IT staff open the proxy firewall for the required ports. In practice, people are often reluctant to open additional ports on the firewall. It is possible to go through the firewall using an HTTP tunnel, however I cannot get this to work to open a SQL connection. There are other methods available, for example Proxifier ( www.proxifier.com ) does this. Does anyone know how to do this in code, as I would prefer to avoid clients having to install an additional application on their machines.

Thanks,
Rob
0
Comment
Question by:RobboRed
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 57

Expert Comment

by:giltjr
ID: 24753398
Unfortunately the bad part of using a proxy is not all IP based applications support using proxy.

proxifier works by "hooking" into the IP stack and intercepting the IP packets and transparently sending them to the proxy server.  Something you really can't do in code.

What I would suggest is that instead of the clients talking directly to the database server, that you write a HTTP front end to your application and have them talk to a web server and have the web server talk to the database.
0
 

Author Comment

by:RobboRed
ID: 24755100
Thanks for your response. A web interface is a possibility, but it is difficult to get the functionality of a Windows application so I'm still hoping there is an alternative solution.
0
 
LVL 57

Expert Comment

by:giltjr
ID: 24756237
Well not really.  If you go back and read by statement, I never said you had to use a web interface.  I said you can use HTTP talking to a web server.

You still have a custom C++ (or whatever language you wish to write in) and it uses HTTP to communicate the requests back to a web server.  In fact it does not even need to be a web server, it can be a custom written server application that processes HTTP, its just a web server based application gets you out of the business of handling some of the more mundane processes of being a HTTP server.

0
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 

Author Comment

by:RobboRed
ID: 24756846
I don't really understand where HTTP comes in. Does a connect command to a database use HTTP?
0
 
LVL 57

Accepted Solution

by:
giltjr earned 500 total points
ID: 24757272
No, you would  use HTTP to communicate the clients request and response to and from the server application.  The server application would then do the query against the database and then return the results to the client.

In one sense it would look like a web based application, the difference is instead of a web browser the client would be your custom program.

This way you don't have to have to have the customer install special software in order to get through their proxy server or for them to install/setup a socks server.

Otherwise they have to configure their firewall to allow direct access to your data base server without going through their proxy.
0
 

Author Comment

by:RobboRed
ID: 24761675
Yes, that would work, thanks.
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

SSL is a very common protocol used these days when browsing the web.  The purpose is to provide security to communication, but how does it do it?  There are several pieces at work that have to be setup before SSL will even work and it requires both …
Transparency shows that a company is the kind of business that it wants people to think it is.
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question