MariaA Posted March 5, 2014 at 10:53 AM Report #547570 Posted March 5, 2014 at 10:53 AM 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
nelsonr Posted March 5, 2014 at 11:02 AM Report #547573 Posted March 5, 2014 at 11:02 AM 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
MariaA Posted March 5, 2014 at 11:15 AM Author Report #547578 Posted March 5, 2014 at 11:15 AM 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
nelsonr Posted March 5, 2014 at 11:33 AM Report #547582 Posted March 5, 2014 at 11:33 AM 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?
MariaA Posted March 5, 2014 at 11:52 AM Author Report #547586 Posted March 5, 2014 at 11:52 AM 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.
nelsonr Posted March 5, 2014 at 12:05 PM Report #547590 Posted March 5, 2014 at 12:05 PM 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; 1 Report
MariaA Posted March 5, 2014 at 12:57 PM Author Report #547607 Posted March 5, 2014 at 12:57 PM Acho que entendi. Só uma coisa: a definição da connection string é a que defino no projeto Visual Studio para aceder à BD? Como faço essa parte de configuração do router?
nelsonr Posted March 5, 2014 at 02:51 PM Report #547619 Posted March 5, 2014 at 02:51 PM 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
jcbiker Posted January 6, 2015 at 09:29 AM Report #574322 Posted January 6, 2015 at 09:29 AM 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.
nelsonr Posted January 6, 2015 at 09:40 AM Report #574324 Posted January 6, 2015 at 09:40 AM 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 respostahttp://www.portugal-a-programar.pt/topic/69239-acessar-bd-sql-express-em-rede-domestica/#entry574321
jcbiker Posted January 6, 2015 at 10:33 AM Report #574326 Posted January 6, 2015 at 10:33 AM Ok. Vou ver. Mas desde já agradeço a disponibilidade.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now