Як отримати доступ до бази даних SQL Server з іншого комп'ютера, підключеного до тієї ж робочої групи?


11

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

Під час встановлення з'єднання з SQL-сервером сталася помилка, пов’язана з мережею або для певного примірника. сервер не був знайдений або був недоступний

Але додаток працює на моєму ПК. Я використовую рядок з'єднання

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 Configuration Manager.

  2. Брандмауер Windows . Відключення брандмауера повністю працює для цього компонента, але це не є найкращою практикою безпеки (і не потрібно). (Примітка. У цьому розділі я припускаю конфігурацію за замовчуванням . Є багато параметрів, які можна змінити, які впливають на ці кроки незначно.)

    Існує два випадки залежно від типу екземпляра SQL Server, до якого ви підключаєтесь:

    1. Екземпляр за замовчуванням (підключіть лише ім'я комп'ютера). Додайте правило дозволу на вхід або на TCP-порту 1433, або в сервіс двигуна бази даних.

    2. Іменований екземпляр (підключення за іменем комп'ютера + ім'я екземпляра). Додайте правило дозволу на вхід на порт 1434 UDP для доступу до служби браузера SQL. Додайте дозволене вхідне правило в сервіс двигуна бази даних.

Ця процедура повністю документована тут , або ви можете дивитися мені пояснити , а потім пройти через конфігурацію для іменованого екземпляра тут .


0

Ви повинні встановити правильні мережеві налаштування у своєму SQL-сервері: Активний TCP / IP на SQL-сервері Також переконайтеся, що ваша служба браузера серверів працює, тому що якщо вона зупинена, ви не можете отримати доступ до SQL- Сервер.


0

Переконайтеся, що служба sqlbrowser увімкнена, як зазначено в bendeg, і що UDP 1434 відкритий на вашій машині, щоб клієнти могли вдаритись до sqlbrowser, щоб вирішити ім'я. Також відкрийте порт TCP / IP названого примірника.

Щоб знайти порт вашого примірника, підключіться за допомогою префіксу tcp: у студії управління так: 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.