Jump to content

Base de dados distribuída


MariaA
 Share

Recommended Posts

Bom dia.

Fiz uma BD em SQLServer 2012 e agora quero que funcione em mais do que um pc.

Quais os passos que devo seguir para que se o user1 alterar a BD no seu computador, o user2 quando aceder à base de dados, noutro local e em outro computador, possa ver essas alterações?

Obrigado

Link to comment
Share on other sites

Boas,

normalmente, a base de dados fica num computador acessível por ambos os utilizadores.

O user2 apenas tem de indicar na string de ligação qual o endereço do computador.

Se o computador estiver numa rede local, para aceder de fora (pela internet) terás de alterar no router para quando entrar uma ligação pela porta do SQL server, redireciona para o IP do computador na rede local

Link to comment
Share on other sites

A string de ligação é a que uso no visual studio, para conectar com a BD para a criação da interface com o utilizador?

Os utilizadores para esta BD nunca partilham a mesma rede e estão constantemente a alterar o local de onde usam a BD.

Não entendi muito bem a parte da alteração do router

Link to comment
Share on other sites

Normalmente, a base de dados fica centralizada, apenas em um computador.

Quem precisar de utilizar a base de dados, tem de definir na connectionstring qual o endereço do servidor, instancia, etc.

Se tiveres numa rede local, qualquer utilizador a partir de qualquer máquina pode aceder à base de dados colocando no endereço de ligação o nome/IP do computador onde está a base de dados.

No entanto, se o utilizador não estiver na rede local, e estiver noutro escritório por exemplo, que endereço vai colocar para aceder à base de dados?

Não sei se essa questão se coloca na tua estrutura, mas caso seja necessário, o que normalmente se faz é ter o computador com a base de dados com acesso à internet. Ai terá um IP local (na rede) e um IP na internet.

Se tiver internet com IP fixo, qualquer utilizador fora da rede local terá de colocar o IP na connectionstring para aceder ao router da rede onde está a máquina com a base de dados. Mas como o que se precisa é aceder à propria máquina e não ao router, adiciona-se um redirecionamento no router para quando chegar uma ligação à porta do SQL, em vez de aceder ao router acede à máquina com a base de dados.

Bem, acho que ainda deve ter ficado mais confuso 😄

Para tentar ser mais direto na resposta, os utilizadores que vão aceder à base de dados estão sempre na mesma rede?

Link to comment
Share on other sites

Uma vez que criei a BD num computador fixo, cá de casa, esse pode ser o que tem o endereço de IP fixo, é portanto onde a BD está centralizada.

Depois existem 2 ou mais PC portáteis onde se vai aceder à BD.

Esses computadores estão a ser usados num total de 6 ou 7 redes e essas são sempre as mesmas.

Ou seja, as BD são usadas em 7 escritorios, cujas redes são conhecidas.

Por isso, eu sei que se estou no escritorio de coimbra acedo a essa rede, se estou no de lisboa igualmente.

Não sei me estou a fazer entender muito bem.

Link to comment
Share on other sites

Ok, então no escritorio de fora, precisam de saber qual o IP do computador onde está a base de dados.

Esse é o IP externo, ou seja, o IP atribuido pelo ISP.

Exemplo:

Escritorio A

- Tem a base de dados num computador com o IP local 192.168.1.100

- Tem o IP de internet 200.200.200.200

- Configura o router para que tudo que entrar pela porta 1433 é redireccionado para o IP 192.168.1.100

- Configura a firewall e SQL server para permitir acessos remotos

Escritorio B

- Define na connection string de acesso á base de dados algo do tipo "Server=200.200.200.200;Database=myDataBase;User Id=myUsername;

Password=myPassword;"

Uma situação a ter em conta é que caso a internet no escritorio A não tenha IP fixo, aquele 200.200.200.200 irá certamente mudar, depois têm de atualizar todos os escritorios para usar o novo IP.

Para dar a volta a isso, podes usar um servidor de IP dinamico (do tipo no-ip.org). O que estes serviços fazem é criarem um endereço fixo (ex: escritorioA.no-ip.org) que aponta para o IP 200.200.200.200.

Depois têm um utilitário que fica instalado na máquina do escritorio A que caso o IP mude, atualiza o endereço para usar o novo IP.

Assim no escritorio B a connecstring passa para algo do tipo "Server=escritorioA.no-ip.org;Database=myDataBase;User Id=myUsername;

  • Vote 1
Link to comment
Share on other sites

Só uma coisa: a definição da connection string é a que defino no projeto Visual Studio para aceder à BD?

Ao fazeres isso pelo visual studio, deve guardar a connection string no ficheiro applição.config.

Ou alteras manualmente ou no visual studio crias logo com o endereço final (do no-ip por exemplo)

Como faço essa parte de configuração do router?

Isso depende da marca e modelo do router.

Normalmente é colocar o IP do router no browser de uma máquina na mesma rede, mostra a página de configuração do router.

Tens de ter o utilizador/password e depois deves ter lá opções para configurar o redirecionamento.

Se procurares no google por algo do tipo "modelo marca port forward", deves encontrar informação

Link to comment
Share on other sites

Boas,

normalmente, a base de dados fica num computador acessível por ambos os utilizadores.

O user2 apenas tem de indicar na string de ligação qual o endereço do computador.

Se o computador estiver numa rede local, para aceder de fora (pela internet) terás de alterar no router para quando entrar uma ligação pela porta do SQL server, redireciona para o IP do computador na rede local

Boas eu tenho a base num computador acessivel para todos os utilizadores em rede local. e a string de ligação estava com o ip do pc que tinha a base, masesmo assim não funcionou.

Link to comment
Share on other sites

Boas eu tenho a base num computador acessivel para todos os utilizadores em rede local. e a string de ligação estava com o ip do pc que tinha a base, masesmo assim não funcionou.

Colocaste a mesma questão neste topico, ao qual já adicionei uma resposta

http://www.portugal-a-programar.pt/topic/69239-acessar-bd-sql-express-em-rede-domestica/#entry574321

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.