Em geral, quanto menor a área de superfície, melhor. Você está no caminho certo ao restringir isso a um IP de origem específico. Seguindo o princípio de privilégio mínimo, você deve negar todas as portas de destino e abrir apenas as que você realmente precisa. Você teria que pesar o custo da administração contra o risco. O risco dependerá de várias coisas, como o nível de confidencialidade dos dados que você está acessando, se o servidor está comprometido, qual é a perda quantificada, etc.
Dito isso, é muito mais provável que um invasor explore uma vulnerabilidade no servidor do cliente dentro de sua própria rede do que seria para ele executar um ataque do meio e prender suas credenciais, material de db sensível. etc. A falsificação de IP na aplicação prática não seria uma grande preocupação aqui. Geralmente é usado para escanear uma rede ou para enquadrar outra máquina / IP. Torna-se extremamente complicado falsificar um IP e fazer qualquer coisa funcional ao usar protocolos que exigem que uma sessão seja configurada entre uma origem e um destino. Possível, mas não provável. (ver arp ou dns envenenamento)
Outro vetor de ataque mais provável (para o banco de dados) pode ser que sua própria máquina / rede esteja comprometida, e o atacante poderia girar a partir daí e atingir a máquina de banco de dados. Claro, neste momento, você teria problemas maiores. ;) Espero que isso ajude um pouco.