Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We run a public website and need to populate a number of pages from our private databases. We don't want to push the data from our local sql server to the website's sql server as that will lead to stale data. We also don't want to open up any more access than is necessary from the public site to our secure network.

We're considering opening a single port for Sql to talk over, and have a sql instance using that port which will hold only the data that's needed by the web server. The limited instance can then read from production server, maybe through views?.

In this way even if the web site is hacked, the only access is to a read only sql instance. What do you think of this solution, is there a better way of doing this?

share|improve this question

Well, the first thing is that the instance is not read-only. The login you use to access the instance may have read-only access to the database, but ultimately something will be writing to the database. Opening the port will expose the instance. Once a connection is made then someone can try whatever they want to try and gain access to the database and/or the server itself.

You're better off putting the SQL server in a DMZ. That way if the server is compromised there is still a barrier between the attacker and your internal network. You can have an outgoing connection from your internal network to the SQL server in the DMZ that can update the data via direct update, replication, log shipping, whatever. Then the only incoming connection from a public source would be into the DMZ.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.