Как получить доступ к базе данных SQL Server с другого компьютера, подключенного к той же рабочей группе?


11

Я создал приложение C #, которое использует базу данных SQL Server. У меня есть другие компьютеры, связанные со мной и друг с другом в рабочей группе. Я поделился своим приложением C # с другими. Когда они открывают приложение, они получают ошибку

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен

Но приложение отлично работает на моем ПК. Строка подключения, которую я использую,

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

который хранится в .configфайле.

Приложение отлично работает на моем ПК. Что я должен сделать? Я включил TCP / IP на сервере, но та же ошибка сохраняется. Некоторые изменения в строке подключения или что-то еще?


1
попробуйте использовать IP-адрес для «источника данных»
Mitch Wheat

1
Попробуйте отключить брандмауэр Windows ... также проверьте technet.microsoft.com/en-us/library/hh231672.aspx. Это должно работать для вас.

3
Отключение брандмауэра Windows не требуется - пожалуйста, прекратите распространять этот миф! Смотрите мой ответ ниже.
Джон Зигель

Ответы:


17

Существует два уровня безопасности, которые необходимо изменить, чтобы разрешить удаленный доступ.

  1. Конфигурация SQL Server . По умолчанию в выпусках Express, Developer и Enteprise Evaluation подключение по протоколу TCP / IP отключено . Включите это с помощью диспетчера конфигурации SQL Server.

  2. Брандмауэр Windows . Хотя полное отключение брандмауэра будет работать для этого компонента, это не является рекомендацией по безопасности (и при этом не требуется). (Примечание: в этом разделе я предполагаю конфигурацию по умолчанию . Существует множество параметров, которые можно изменить, что немного влияет на эти шаги.)

    Существует два случая в зависимости от типа экземпляра SQL Server, к которому вы подключаетесь:

    1. Экземпляр по умолчанию (подключение только по имени компьютера). Добавьте разрешающее входящее правило либо на TCP-порт 1433, либо на службу ядра базы данных.

    2. Именованный экземпляр (подключение по имени компьютера + имя экземпляра). Добавьте разрешающее входящее правило на UDP-порт 1434 для доступа к службе браузера SQL. Добавьте разрешающее входящее правило в службу ядра СУБД.

Эта процедура полностью задокументирована здесь , или вы можете посмотреть, как я объясню, а затем пройтись по конфигурации для именованного экземпляра здесь .


0

Вы должны установить правильные параметры сети в вашем SQL-сервере: активный TCP / IP в SQL-сервере. Также убедитесь, что служба браузера сервера работает, потому что если она остановлена, вы не сможете получить доступ к SQL-серверу. Сервер.


0

Убедитесь, что служба sqlbrowser включена, как упомянуто bendeg, и что на вашем компьютере открыт UDP 1434, чтобы клиенты могли использовать sqlbrowser для разрешения имени. Также откройте порт TCP / IP для указанного экземпляра.

Чтобы найти порт вашего экземпляра, подключитесь с помощью префикса tcp: в Management Studio следующим образом: tcp: ASHISHPC1 \ SQLEXPRESS, и результатом запроса ниже должен быть порт, который вы должны предоставить клиентам в вашей рабочей группе.

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID

-1

Я выключил брандмауэр Windows для домашней сети, и он работал нормально .. Спасибо всем .. :)


5
Если это был ваш вопрос, вы должны войти в систему с теми же учетными данными, которые вы использовали на исходном сайте ( переполнение стека ), чтобы получить право владения этим вопросом здесь.
Jcolebrand

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.