Discrepo un poco con el comentario anterior. Para cualquier cosa que maneje datos sensibles (emails, contraseñas, datos personales), separar es obligatorio. No es solo por accesos directos, sino por contención de daños.
Imagina que tu aplicación tiene un RCE (Remote Code Execution). Con todo en el mismo servidor, el atacante tiene acceso completo a todo. Si la BD está en otro lado, al menos necesitan encontrar credenciales válidas y conectarse a otro sistema.
Hoy con Docker y servidores baratos en Vultr/DigitalOcean (?-10/mes extra), la separación es accesible. Es una inversión en seguridad que duerme más tranquilo.