Expor um banco de dados não é realmente um problema gigante comparado a alguns dos outros serviços que são frequentemente expostos ao mundo + cão ... exceto que é um sistema complicado com muitas vulnerabilidades potenciais , incluindo escalonamento de permissões. Eu me certificaria de que você não exponha o banco de dados a consultas públicas e execute com SSL necessário, etc. Eu diria que é possível, mas sim, você deve ser paranóico e manter uma instalação de banco de dados separada para o público. Se a sua empresa não está disposta a pagar os custos de licenciamento para isso, sim, skedaddle.
Do lado do cliente / suporte, conectar-se diretamente ao banco de dados pode ser um problema se o ISP do cliente bloquear determinados tipos de portas ou tráfego.
Em um modelo SaaS, o que você geralmente quer que seus programadores façam é escrever uma API que possa ser consultada no aplicativo. APIs dessa natureza normalmente operam em https e fornecem dados de volta ao aplicativo na resposta HTTP. Bônus adicional: Ele funciona em qualquer lugar onde a web funciona, é MUITO fácil armazenar conjuntos de resultados em cache usando memcached ou outras tecnologias de cache para reduzir a carga no servidor db, e a autenticação http é bastante bem suportada e testada.