olá galera do forum,
estou com uma duvida que pode ser até boba mas, gostaria da opnião da galera do forum, estou começando um projeto onde terá um banco de dados na nuvem, que no começo esse banco dados será acessado por dois computadores em lugares destintos, mas pode ser que mais pra frente o meu cliente pode até querer que seus dados sejam acessados pelos clientes por aplicação android.
então minha duvida é a seguinte, pela questão do banco de dados não ser local é melhor eu trabalhar com procedure ou comandos sql feita pela aplicação java?
Cara, você precisa entender o seguinte, não é a query que vai definir sua segurança (embora ela deva evitar cosias que aceitem sql injection).
Se você tem medo de sniffer, que venham a capturar os dados de uma requisição, isso pode ocorrer tanto para uma instrução SQL como
SELECT * FROM TABELA;
Como
CALL OBTEM_DADO_TABELA
Entendeu?
O que você precisa é de um servidor confiável (se for na nuvem, as empresas já tem procedimentos e processos para isso e, se não tiver, troque de empresa).
O android não dá um suporte nativo para conexão a bancos de dados, como o JDBC, por exemplo.
Normalmente se utiliza de web services, como o @campelo.m sugeriu.
Desta maneira, o que você expõe são serviços que, dentre outras cosias, podem exigir autenticação e tals, mitigando a questão da exposição para a internet (veja, mitigando, não eliminando).
Procure sempre seguir algum livro ou tutorial, assim não vai perder tempo imaginando fazer de um jeito que, embora possível, ninguém faz. Além da porta do banco aberta para o mundo, a senha do banco ficaria no app.