Segurança:
Além da resposta de Sander, eu acrescentaria que em certos níveis de conformidade com o PCI, este é um requisito :
Servidores separados da Web e de banco de dados O CHD é armazenado em massa no banco de dados, tornando-o um alvo de alto valor para um invasor. Servidor de banco de dados separado significa que o acesso pode ser estritamente controlado (exposição limitada). Exigido pela Seção 1 do PCI DSS.
Fonte: http://www.focusonpci.com/site/index.php/PCI-101/technical-requirements.html
Ao separar as tarefas da Web e do banco de dados, você limita sua exposição. Normalmente, seu banco de dados está em um segmento privado da sua rede e inacessível publicamente.
Também é sugerida uma conexão VPN estática, no PCI, entre o seu web / db e a detecção de intrusões no equipamento de rede. No caso de um comprometimento, o banco de dados será isolado e a conexão VPN será encerrada, de modo que, mesmo que seu aplicativo e sua chave de criptografia estejam comprometidos, o acesso ao armazenamento de dados foi bloqueado e fica inacessível.
Alta disponibilidade / recuperação de desastres:
Sander está no ponto aqui. Vá votar nele. Eu acrescentaria que, mesmo que uma pequena tarefa de manutenção, como fazer um backup do sistema de arquivos ou um despejo de banco de dados, seu banco de dados, na melhor das hipóteses, esteja limitado a somente leitura por algum tempo. Em casos extremos, vi tempos limite de espera de bloqueio e filas de processos serem preenchidas, pois todas as conexões disponíveis estão na fila ou descartadas. O site "desce", efetivamente.
Você pode atenuar isso separando seu banco de dados e agendando seu servidor da Web para colocar o site no modo de manutenção durante essas janelas de backup, sem qualquer conseqüência para o sistema de arquivos do servidor da Web.