SITE ACESSAR UMA BASE DE DADOS PARA CADA CLIENTE

ALTAIR148 29/11/2016 08:49:03
#469303
Bom dia,

Pessoal, estou precisando de uma ajuda. Estou iniciando um projeto novo onde vou hospedar em meu servidor a base de dados de vários clientes, mas eu gostaria de ter uma base para cada cliente. Terei uma base de dados que vamos chamar de [Ô]Geral[Ô] onde terá o login de todos os clientes, nessa tabela também terá a qual base ele pertence. Preciso que ao logar ele se conecte em seu respectivo banco. Não tenho ideia de como fazer isso.


Muito obrigado.
KERPLUNK 29/11/2016 22:27:59
#469318
Resposta escolhida
Se for SQL Server, você pode usar o comando [Ô]USE[Ô] em cada query. Assim que o usuário logar, verifique qual base ele é e guarde isso numa variável. Em todas as queries, antes de fazer qualquer coisa, execute o comando USE <nome da base>. Assim, aquela conexão estará sempre apontando para a base correta. Seria uma solução em um cenário que você está habituado, mas é uma péssima idéia fazer assim.
SINCLAIR 30/11/2016 07:52:41
#469322
Colega ALTAIR148,

Como nosso colega KERPLUNK escreveu, se for SQL Server, utilize o comando USE, sendo o mesmo caso para MySQL.

Em PostGreSQL basta instalar as funções DBLink que te permitirão não só buscar dados em diferentes bases de dados como fazer querys SQL entre diferentes bancos, sem precisar mudar de um banco para outro (por isto PostGreSQL não utilizar o USE no formato MySQL).

Tudo de bom.
DS2T 30/11/2016 08:41:14
#469324
é só fazer um Select no banco Geral, procurando pela senha e login do usuário. Se encontrar, ele te retorna o nome do banco.
Como eles vão estar hospedados no mesmo servidor, basta mudar o nome do banco para o retorno da sua consulta na string de conexão.
Tópico encerrado , respostas não são mais permitidas