Bem, a primeira coisa é que a instância não é somente leitura. O login que você usa para acessar a instância pode ter acesso somente leitura ao banco de dados, mas, no final, algo será gravado no banco de dados. Abrir a porta irá expor a instância. Uma vez que uma conexão é feita, alguém pode tentar o que quiser e obter acesso ao banco de dados e / ou ao próprio servidor.
É melhor colocar o servidor SQL em uma DMZ. Dessa forma, se o servidor estiver comprometido, ainda haverá uma barreira entre o invasor e sua rede interna. Você pode ter uma conexão de saída de sua rede interna para o servidor SQL na DMZ que pode atualizar os dados por meio de atualização direta, replicação, envio de log, etc. Então a única conexão de entrada de uma fonte pública seria na DMZ.