วิธีเข้าถึงฐานข้อมูล 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 Firewall โปรดหยุดเผยแพร่ตำนานดังกล่าว! ดูคำตอบของฉันด้านล่าง
Jon Seigel

คำตอบ:


17

การรักษาความปลอดภัยมีสองระดับที่ต้องเปลี่ยนเพื่อให้สามารถเข้าถึงจากระยะไกลได้

  1. การกำหนดค่า SQL Server โดยเริ่มต้นในเอ็กซ์เพรส, นักพัฒนาและรุ่น Enteprise ให้คำปรึกษา, การเชื่อมต่อโดยใช้โปรโตคอล TCP / IP เป็นคนพิการ เปิดใช้งานสิ่งนี้โดยใช้ SQL Server Configuration Manager

  2. windows Firewall ในขณะที่การปิดใช้งานไฟร์วอลล์ทั้งหมดจะทำงานได้สำหรับส่วนประกอบนี้การทำเช่นนั้นไม่ใช่วิธีปฏิบัติที่ดีที่สุดด้านความปลอดภัย (หรือไม่จำเป็นต้องมี) (หมายเหตุ: ในส่วนนี้ฉันถือว่าการกำหนดค่าเริ่มต้นมีการตั้งค่ามากมายที่สามารถเปลี่ยนแปลงได้ซึ่งมีผลต่อขั้นตอนเหล่านี้เล็กน้อย)

    มีสองกรณีขึ้นอยู่กับประเภทของอินสแตนซ์ SQL Server ที่คุณกำลังเชื่อมต่อ:

    1. อินสแตนซ์เริ่มต้น (เชื่อมต่อด้วยชื่อคอมพิวเตอร์เท่านั้น) เพิ่มกฎการอนุญาตให้เข้ามาทั้งบนพอร์ต TCP 1433 หรือบริการโปรแกรมฐานข้อมูล

    2. อินสแตนซ์ที่มีชื่อ (เชื่อมต่อโดยชื่อคอมพิวเตอร์ + ชื่ออินสแตนซ์) เพิ่มกฎอนุญาตให้เข้ามาในพอร์ต UDP 1434 เพื่อเข้าถึงบริการ SQL Browser เพิ่มกฎการอนุญาตให้เข้ามาในบริการโปรแกรมฐานข้อมูล

ขั้นตอนนี้เป็นเอกสารอย่างเต็มที่ที่นี่หรือที่คุณสามารถดูฉันอธิบายแล้วเดินผ่านการกำหนดค่าสำหรับกรณีที่มีชื่อที่นี่


0

คุณต้องตั้งค่าเครือข่ายการตั้งค่าที่ถูกต้องใน SQL-Server ของคุณ: TCP / IP ที่ใช้งานอยู่ใน SQL-Server นอกจากนี้ต้องแน่ใจว่าเซิร์ฟเวอร์บริการเบราว์เซอร์ของคุณทำงานเพราะถ้ามันหยุดคุณไม่สามารถเข้าถึง 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 สำหรับ Home Network และใช้งานได้ดี .. ขอบคุณทุกคน .. :)


5
หากนี่เป็นคำถามของคุณคุณควรลงชื่อเข้าใช้ที่นี่ด้วยข้อมูลประจำตัวเดียวกับที่คุณใช้ในไซต์ดั้งเดิม ( Stack Overflow ) เพื่อให้คุณได้รับสิทธิ์การเป็นเจ้าของคำถามที่นี่
jcolebrand

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.