Jak uzyskać dostęp do bazy danych SQL Server z innego komputera podłączonego do tej samej grupy roboczej?

11

Utworzyłem aplikację C #, która korzysta z bazy danych SQL Server. Mam inne komputery podłączone do mnie i do siebie w grupie roboczej. Udostępniłem moją aplikację C # innym osobom. Po otwarciu aplikacji pojawia się błąd

Wystąpił błąd związany z siecią lub specyficzny dla instancji podczas nawiązywania połączenia z programem SQL Server. serwer nie został znaleziony lub był niedostępny

Ale aplikacja działa dobrze na moim komputerze. Ciąg połączenia, którego używam, to

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

który jest przechowywany w .configpliku.

Aplikacja działa dobrze na moim komputerze. Co muszę zrobić? Włączyłem protokół TCP / IP na serwerze, ale ten sam błąd nadal występuje. Jakaś zmiana ciągu połączenia lub coś innego?

Społeczność
źródło
1
spróbuj użyć adresu IP jako „źródła danych”
Mitch Wheat
1
Spróbuj wyłączyć Zaporę systemu Windows ... sprawdź także technet.microsoft.com/en-us/library/hh231672.aspx. To powinno działać dla Ciebie.
3
Wyłączenie Zapory systemu Windows nie jest wymagane - przestań propagować ten mit! Zobacz moją odpowiedź poniżej.
Jon Seigel

Odpowiedzi:

17

Istnieją dwa poziomy bezpieczeństwa, które należy zmienić, aby umożliwić zdalny dostęp.

  1. Konfiguracja SQL Server . Domyślnie w wersjach Express, Developer i Enteprise Evaluation połączenie przez protokół TCP / IP jest wyłączone . Włącz to za pomocą SQL Server Configuration Manager.

  2. Zapora systemu Windows . Chociaż całkowite wyłączenie zapory będzie działać dla tego komponentu, nie jest to najlepsza praktyka bezpieczeństwa (ani nie jest wymagana). (Uwaga: w tej sekcji zakładam domyślną konfigurację . Istnieje wiele ustawień, które można zmienić, co nieco wpływa na te kroki).

    Istnieją dwa przypadki w zależności od typu wystąpienia SQL Server, z którym się łączysz:

    1. Domyślna instancja (połącz tylko poprzez nazwę komputera). Dodaj regułę zezwalającą na przychodzące na porcie TCP 1433 lub w usłudze silnika bazy danych.

    2. Nazwane wystąpienie (połącz przez nazwę komputera + nazwę wystąpienia). Dodaj regułę zezwalającą na przychodzące na porcie UDP 1434, aby uzyskać dostęp do usługi przeglądarki SQL. Dodaj regułę zezwalającą na przychodzące w usłudze silnika bazy danych.

Ta procedura jest tutaj w pełni udokumentowana , możesz też zobaczyć, jak wyjaśniam, a następnie przejść przez konfigurację nazwanego wystąpienia tutaj .

Jon Seigel
źródło
0

Musisz ustawić prawidłowe ustawienia sieci na swoim serwerze SQL: Aktywny protokół TCP / IP na serwerze SQL. Upewnij się również, że usługa przeglądarki serwera jest uruchomiona, ponieważ jeśli zostanie zatrzymana, nie będziesz mieć dostępu do serwera SQL- Serwer.

BendEg
źródło
0

Upewnij się, że usługa sqlbrowser jest włączona, jak wspomniano przez bendeg, i że UDP 1434 jest otwarty na twoim komputerze, aby klienci mogli trafić do sqlbrowser w celu rozwiązania nazwy. Otwórz także port TCP / IP nazwanego wystąpienia.

Aby znaleźć port instancji, połącz się za pomocą przedrostka tcp: w Management Studio, tak jak: tcp: ASHISHPC1 \ SQLEXPRESS, a wynikiem zapytania poniżej powinien być port, który musisz udostępnić klientom w grupie roboczej.

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
Robert Gannon
źródło
-1

Wyłączyłem zaporę systemu Windows dla sieci domowej i działała dobrze .. Dziękuję wszystkim .. :)

użytkownik27553
źródło
5
Jeśli to było twoje pytanie, powinieneś zalogować się tutaj przy użyciu tych samych poświadczeń, których użyłeś w oryginalnej witrynie ( Przepełnienie stosu ), aby uzyskać własność pytania tutaj.
jcolebrand