Como acessar um banco de dados do SQL Server de outro computador conectado ao mesmo grupo de trabalho?

11

Eu criei um aplicativo C # que usa um banco de dados SQL Server. Tenho outros computadores conectados a mim e um ao outro em um grupo de trabalho. Compartilhei meu aplicativo C # com outras pessoas. Quando eles abrem o aplicativo, eles recebem o erro

Ocorreu um erro relacionado à rede ou específico da instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível

Mas o aplicativo está funcionando bem no meu PC. A cadeia de conexão que estou usando é

Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159

que é armazenado em um .configarquivo.

O aplicativo está funcionando bem no meu PC. O que devo fazer? Eu ativei o TCP / IP no servidor, mas o mesmo erro persiste. Alguma mudança na cadeia de conexão ou algo mais?

Comunidade
fonte
1
tente usar o endereço IP para 'fonte de dados'
Mitch Wheat
1
Tente desativar o Firewall do Windows ... verifique também technet.microsoft.com/en-us/library/hh231672.aspx . Isso deve funcionar para você.
3
Não é necessário desativar o Firewall do Windows - pare de propagar esse mito! Veja minha resposta abaixo.
precisa saber é o seguinte

Respostas:

17

Existem dois níveis de segurança que precisam ser alterados para permitir o acesso remoto.

  1. Configuração do SQL Server . Por padrão, nas edições Express, Developer e Enteprise Evaluation, a conexão pelo protocolo TCP / IP está desativada . Habilite isso usando o SQL Server Configuration Manager.

  2. Firewall do Windows . Embora a desativação total do firewall funcione para esse componente, isso não é uma prática recomendada de segurança (nem é necessária). (Nota: nesta seção, assumo uma configuração padrão . Há muitas configurações que podem ser alteradas que afetam ligeiramente essas etapas.)

    Existem dois casos, dependendo do tipo de instância do SQL Server à qual você está se conectando:

    1. Instância padrão (conectar-se apenas pelo nome do computador). Adicione uma regra de entrada permitida na porta TCP 1433 ou no serviço do mecanismo de banco de dados.

    2. Instância nomeada (conecte pelo nome do computador + nome da instância). Adicione uma regra de permissão de entrada na porta UDP 1434 para acessar o serviço Navegador SQL. Adicione uma regra de permissão de entrada no serviço do mecanismo de banco de dados.

Este procedimento está totalmente documentado aqui , ou você pode assistir-me explicar e, em seguida, percorrer a configuração de uma instância nomeada aqui .

Jon Seigel
fonte
0

Você deve definir as configurações de rede corretas no seu SQL-Server: TCP / IP ativo no SQL-Server Além disso, verifique se o Serviço de Navegador do Servidor está em execução, porque, se for interrompido, você não poderá acessar o SQL- Servidor.

BendEg
fonte
0

Certifique-se de que o serviço sqlbrowser esteja ativado, conforme mencionado por bendeg, e de que o UDP 1434 esteja aberto em sua máquina, para que os clientes possam acessar o sqlbrowser para resolver o nome. Abra também a porta TCP / IP da instância nomeada.

Para localizar a porta da sua instância, conecte-se usando o prefixo tcp: no Management Studio da seguinte forma: tcp: ASHISHPC1 \ SQLEXPRESS e o resultado da consulta abaixo deve ser a porta que você precisa expor para os clientes em seu grupo de trabalho.

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
Robert Gannon
fonte
-1

Desliguei o firewall do Windows para Rede doméstica e funcionou bem .. Obrigado a todos .. :)

user27553
fonte
5
Se essa foi sua pergunta, faça login aqui com as mesmas credenciais usadas no site original ( Stack Overflow ), para obter a propriedade da pergunta aqui.
jcolebrand