我们运行一个公共网站,并需要从我们的私人数据库中填充一些页面。 我们不希望将数据从我们的本地sql服务器推送到网站的sql服务器,因为这将导致陈旧的数据。 我们也不想开放比公共网站更多的访问权限到我们的安全networking。
我们正在考虑为Sql打开一个单一的端口进行通话,并且有一个使用该端口的sql实例,它将只保存Web服务器所需的数据。 然后有限的实例可以从生产服务器读取,也许可以通过视图?
这样即使网站被黑客入侵,唯一的访问就是只读的sql实例。 你对这个解决scheme有什么看法,有没有更好的方法呢?
那么,首先是实例不是只读的。 您用于访问实例的login名可能对数据库具有只读访问权限,但最终会写入数据库。 打开端口将会暴露实例。 一旦build立连接,那么有人可以尝试任何他们想要尝试访问数据库和/或服务器本身。
你最好把SQL服务器放在一个DMZ中。 这样,如果服务器受到攻击,攻击者和内部networking之间仍然存在障碍。 你可以有一个从内部networking到DMZ中的SQL服务器的传出连接,它可以通过直接更新,复制,日志传送等来更新数据。 然后,来自公共来源的唯一传入连接将进入DMZ。