Ir para conteúdo
  • Cadastre-se

dev botao

Que banco de dados usar para acesso em nuvem


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 161 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia, Vou iniciar um novo projeto em Delphi um software base para atendimento call center, sempre desenvolvi para banco de dados em redes fisicas, será a primeira vez com banco de dados que estará em núvem.

primeira questão o Delphi me dá suporte a esse tipo de acesso, sendo que o exe estará na maquina do cliente e o banco em núvem, e que tipo de banco de dados deveria usar para este caso.

 

segunda questão, como faria essa ligação do software com o banco estando remoto e tendo a possibilidade de varios funcionários acessando ao mesmo tempo

 

bom essas são as minhas dúvidas iniciais e já agradeço de antemão a ajuda!

  • Moderadores
  • Solution
Postado

Bom dia.

primeira coisa não se expõe a porta de um banco na nuvem, fácil de ser raqueado além de lentidão.

construa um servidor rest  expondo como api/microsserviços programando nele sua regra de negocio e diminuindo o trafego, além de usar REDIS ou RabbitMQ para cacheamento.

 

algumas frameworks delphi para construir seu servidores

nos dois primeiros tem um orm com eles então basta mapear seu banco nele e já pode expor

https://www.tmssoftware.com/site/xdata.asp

https://github.com/danieleteti/delphimvcframework

https://github.com/HashLoad/horse

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 2 semanas depois ...
Postado

Então, até cheguei pensar nisso, porém cada usuário estará em um local diferente, serão vendedores em home office e o banco de dados sendo usado remotamente pela internet, chegamos pensar em hostpost para servidor. Sou iniciante, não tenho muita experiencia em programação, é um software que quero desenvolver para maior aprendizado. E para uso pessoal ou seja empresa da família. Precisava de soluções mais explicadas, como estou começando existem muitas coisas das quais ainda não sei como funciona e não entendo.

Como por exemplo essa questão de criar o servidor funcionando remotamente e sendo acessado via internet pelos usuários, não faço nem idéia de por onde começar e como fazer essa ligação com o EXE do delphi. Ou exatamente qual tipo de banco de dados usar, consigo fazer por exemplo no IB o banco ou no Firebird? Dei uma olhada no REDIS e no RabbitMQ e não consegui entender bem como funcionam.

Postado (editado)
49 minutos atrás, tatinaraujo disse:

Então, até cheguei pensar nisso, porém cada usuário estará em um local diferente, serão vendedores em home office e o banco de dados sendo usado remotamente pela internet, chegamos pensar em hostpost para servidor. Sou iniciante, não tenho muita experiencia em programação, é um software que quero desenvolver para maior aprendizado. E para uso pessoal ou seja empresa da família. Precisava de soluções mais explicadas, como estou começando existem muitas coisas das quais ainda não sei como funciona e não entendo.

Como por exemplo essa questão de criar o servidor funcionando remotamente e sendo acessado via internet pelos usuários, não faço nem idéia de por onde começar e como fazer essa ligação com o EXE do delphi. Ou exatamente qual tipo de banco de dados usar, consigo fazer por exemplo no IB o banco ou no Firebird? Dei uma olhada no REDIS e no RabbitMQ e não consegui entender bem como funcionam.

talvez isso possa te ajudar:

da uma olhada nos videos desse canal:

https://www.youtube.com/channel/UCExEoXjNTmKLFLK2qpBSI5g

considere que a parte do cliente não precisa necessariamente ser mobile, vc pode usar VCL desktop como cliente

isso é só para te dar uma base de como iniciar, mas lembre-se o Google é seu amigo, desde que vc saiba o que procurar

 

Editado por datilas
Postado

Sim, consegui entender por onde iniciar, o vídeo é bem bacana, já pesquisei várias coisas no google, mas infelizmente não sei se as perguntas que estou fazendo não estão muito claras ou se realmente não há conteúdo a respeito do que procuro. como já disse sou iniciante, já criei softwares basicos para banco de dados funcionando em rede local e ok, é bem tranquilo de trabalhar assim.

Agora preciso de solução para esse banco funcionar via internet e não possuo nenhum servidor físico na empresa, precisaria desse bando ou em núvem ou hostpost ou alguma outra solução.

  • Moderadores
Postado

Acho que o correto é tu começar a ler sobre o assunto. conforme já mencionei, jamais abra e coloque seu banco de dado exposto na web, seguro somente por firewall e a senha do banco.

crie uma API/Microsserviço com segurança e através dele faça esse acesso se tanto necessita direto, senão o caminho é escrever sua API com as regras de negocio, separar seu sistema e deixar o front somente de acesso

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
24 minutos atrás, tatinaraujo disse:

Sim, consegui entender por onde iniciar, o vídeo é bem bacana, já pesquisei várias coisas no google, mas infelizmente não sei se as perguntas que estou fazendo não estão muito claras ou se realmente não há conteúdo a respeito do que procuro. como já disse sou iniciante, já criei softwares basicos para banco de dados funcionando em rede local e ok, é bem tranquilo de trabalhar assim.

Agora preciso de solução para esse banco funcionar via internet e não possuo nenhum servidor físico na empresa, precisaria desse bando ou em núvem ou hostpost ou alguma outra solução.

com a mesma regra dos videos acima, vc pode alugar uma vps (amazon,azure,etc) e subir seu db e seu app servidor(micro serviços assim como o juliomar citou acima),

mas lembre-se toda segurança é pouca na web, então configure firewall , senha no appserver, token ou jwt (tudo que vc possa colocar para não expor seu db nem sua vps)

  • 3 anos depois...
Postado

Pessoal, sobre segurança: só de dar um "connect" em um TZConnection por exemplo dentro de meu projeto com meu MySQL em um servidor de hospedagem já coloca em risco o banco de dado?

Especificamente qual a operação que coloca em risco?

Em 2016 fiz uns testes em Delphi com o banco no servidor de hospedagem (site HotelDaWeb se não me engano) e funcionou. Recentemente resolvi voltar a programar (sempre para uso próprio na empresa da família) e agora com o Lazarus e estou (ou estava) com a intenção de fazer dessa forma devido a praticidade, disponibilidade dos dados e backup sempre feito. Qual o risco efetivo? O que o suposto hacker precisaria saber para invadir?

  • Moderadores
Postado
7 hours ago, jdaltoe said:

Pessoal, sobre segurança: só de dar um "connect" em um TZConnection por exemplo dentro de meu projeto com meu MySQL em um servidor de hospedagem já coloca em risco o banco de dado?

Especificamente qual a operação que coloca em risco?

Em 2016 fiz uns testes em Delphi com o banco no servidor de hospedagem (site HotelDaWeb se não me engano) e funcionou. Recentemente resolvi voltar a programar (sempre para uso próprio na empresa da família) e agora com o Lazarus e estou (ou estava) com a intenção de fazer dessa forma devido a praticidade, disponibilidade dos dados e backup sempre feito. Qual o risco efetivo? O que o suposto hacker precisaria saber para invadir?

a porta vai ficar aberta do seu banco para a web. ele vai sofrer ataques para tentar acessar direto

outra coisa tu vai ficar trafegando na web dados que não é necessário. seu cliente ou você vão resolver de fazer select * from tabela sem umfiltro e trazer um milhão de registros que na verdade so vai precisar de um.

mas a questão de ataque será o primeiro  a ocorrer e dai tu além de ter o sistema lento vai ficar tendo que modificar quem sabe a senha a cada momento até que uma hora algum consegue acessar e dai já era seus dados.

usa lazarus e horse e faz todo o projeto voltado a api, seu sistema vai usar jwt ou outro forma de acessar mas nunca o sistema desktop ou outro vai estar trabalhando no seu banco direto e sim na API com segurança

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
Em 11/06/2024 at 08:45, Juliomar Marchetti disse:

a porta vai ficar aberta do seu banco para a web. ele vai sofrer ataques para tentar acessar direto

outra coisa tu vai ficar trafegando na web dados que não é necessário. seu cliente ou você vão resolver de fazer select * from tabela sem umfiltro e trazer um milhão de registros que na verdade so vai precisar de um.

mas a questão de ataque será o primeiro  a ocorrer e dai tu além de ter o sistema lento vai ficar tendo que modificar quem sabe a senha a cada momento até que uma hora algum consegue acessar e dai já era seus dados.

usa lazarus e horse e faz todo o projeto voltado a api, seu sistema vai usar jwt ou outro forma de acessar mas nunca o sistema desktop ou outro vai estar trabalhando no seu banco direto e sim na API com segurança

Juliomar, obrigado pela contribuição. Em outros tópicos eu vi que vc fez destaque para esse assunto também.

Uma indicação no outro post (não lembro se a indicação foi sua) seria o canal Youtube 99 Coders nesse e em outros tb da área (canal Delphi na Veia que contribui para o projeto Horse) é demonstrado o projeto voltado a API como vc orientou mas o problema é que todos fizeram com o banco em localhost e no meu caso eu busco deixar num site de hospedagem (praticidade, acessibilidade e backup). Como são instalados os pacotes (boss, json, jwt, etc   que vi nos canais mencionados)  nesse tipo de servidor ?  Ainda em complemento da pergunta: minha aplicação .EXE com Forms rodando na maquina do meu escritório tem possibilidade de fazer isso tudo (projeto voltado a API) ???

Devido a essa complexidade (pra mim pelo menos é) minha esperança é encontrar um meio de fazer conexão direta. Existe alguma forma de fazer como eu imaginei no início sem que haja risco ou sempre terá risco? Só tem risco se houver outras pessoas na mesma rede em que está meu computador cliente ou qualquer um pode invadir?

Não havendo forma segura tenho q descobrir como faço as instalações acima no servidor.

  • Moderadores
Postado

Se for banco de dados de hospedagem de sites convencional, não é recomendável. Hospedagens são alvo fácil para invasões. Contrate um serviço de banco de dados (AWS por exemplo) ou, algum servidor online(VPS) pelo menos. Desenvolva uma camada de comunicação (API) que vai transacionar informações do seu programa com o banco de dados e utilize controles de acesso (access token, etc.) para consumir essa API. Possui um ótimo desempenho e já é uma segurança a mais. Nunca abra porta, usuário e senha do seu banco de dados.

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Postado

Boa tarde. Obrigado novamente.

Os bancos sugeridos pelo Cleber Ferreira já estão preparados para trabalhar com API sem que precise "instalar" alguma coisa nele (Horse por exemplo) ? Seguindo também a sugestão do Juliomar de Lazarus + Horse

E com essa estrutura citada acima minha aplicação com Form rodando no computador pessoal funcionaria (claro depois de prepará-lo para consumir API) ?  ou tenho que desenvolver algo voltado pra web como vi em exemplos na internet em que o consumo da API era feito pelo navegador de internet Chrome, Edge, etc  ?

  • Moderadores
Postado

Sim seu sistema desktop vai consumir a API diretamente e sem ter driver de banco ou acesso a banco. então tu troca seu FDConnection FDQuery por um TNetHTTPClient ou TRESTClient que vai consumir

claro seu banco não pode e não deve ficar no mesmo servidor da API

os pacotes com boss etc é só para desenvolver e no github tem como fazer

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado
Em 17/06/2024 at 09:15, Juliomar Marchetti disse:

Sim seu sistema desktop vai consumir a API diretamente e sem ter driver de banco ou acesso a banco. então tu troca seu FDConnection FDQuery por um TNetHTTPClient ou TRESTClient que vai consumir

claro seu banco não pode e não deve ficar no mesmo servidor da API

os pacotes com boss etc é só para desenvolver e no github tem como fazer

ou IdHTTP...rsrsrs

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

  • Este tópico foi criado há 161 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.