[MSSQL] ทำให้เครื่องอื่นสามารถ Connect เข้ามาหาได้

พอดีมีเครื่องน้องในทีมลง Windows ใหม่แล้วพอลงอะไรเสร็จหมดแล้ว ปรากฏว่าเครื่องอื่นๆ ในวงแลน ไม่สามารถเชื่อมต่อฐานข้อมูลที่อยู่บนเครื่องนี้ได้ครับ สำหรับวิธีการ + ตรวจเช็คให้เครื่องอื่นสามารถ Connect เข้ามาหาได้ มีขั้นตอน ดังนี้

Error Pattern

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was   
not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow   
remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)   
(Microsoft SQL Server, Error: -1)  

Check List: CMD - Ping

  • ping ดูก่อนนะครับ ว่าพบ Server หรือป่าว เดี๋ยวจะไปเจอว่าท้ายที่สุดแล้ว ลืมเสียบสายแลน (เคยมีเคสจริงที่ Site ลูกค้าแห่งหนึ่ง เกิดขึ้นแบบนี้ จนสุดท้ายไปเจอว่าหนูเทะสายแลนขาด แต่เรียกให้ vender มาแก้ซะงั้น)
  • ping IP / DNS บางทีอาจจะพบปัญหาที่ DNS แต่ IP ใช้งานได้

Check List: MSSQL Server Configuration

ตรวจสอบ Server Properties ของ SQL Server ได้เปิด "Allow remote connection to this server" หรือไม่ โดยมีขั้นตอน ดังนี้

  • เข้าตัว SQL Server Management Studio (SSMS) จากนั้น Login ด้วยสิทธิิ์ที่สามารถจัดการ Database ได้ อย่างเช่น ใช้ Windows Authentication หรือ ใช้ User SA เป็นต้น
  • คลิกขวาที่ Server เลือก Properties
  • มาในส่วน Connection ติ๊กเลือก "Allow remote connection to this server"
  • กด OK เพื่อบันทึกการตั้งค่า

ตรวจสอบว่า Enable Protocols TCP/IP หรือ ยัง

  • เข้าตัว SQL Server Configuration Manager
  • จากนั้นเปิด TCP/IP ตาม Instance ที่ต้องการ (ในที่นี้ Instance ชื่อ "MSSQL2017") ดังรูป
  • หากใช้ Port อื่นๆ นอกเหนือจาก Port 1433 (MSSQL Default Port) ก็ตามไปแก้ Port ที่ใช้ด้วย
  • Restart Service ของ MSSQL ครับ

ตรวจสอบ สถานะของ SQL Browser Service ต้อง Start ถ้ายังไม่ Start ให้เปิดใช้งานให้เรียบร้อย

Check List: Windows Firewall ดูว่าได้ Allow Port ของ MSSQL หรือยัง ?

สำหรับบน Windows มีขั้นตอน ดังนี้ครับ

  • เข้า Control Panel >> Windows Firewall
  • เลือก Advance Settings ดังรูป
  • เลือก Inbound Rules จากนั้นเลือก New Rule
  • เลือกรูปแบบของกฏ ในที่นี้เลือกให้กฏ ตรวจสอบจาก Port ครับ
  • กำหนด Protocol และ Port
  • ถ้ามีเงื่อนไขเข้าตามกฏ ให้ทำอย่างไร อันนี้ คือ Allow (อนุญาติแบบไม่มีเงื่อนไข)
  • กำหนดขอบเขตของกฏที่สร้าง ในที่นี้กำหนดใช้กฏนี้กับ Domain Network ขององค์กรครับ
  • ตั้งชื่อกฏ และคำอธิบาย จากนั้นกด Finish

หมายเหตุ

  • สำหรับวิธีการนี้ได้ทดสอบใน MSSQL เวอร์ชัน 2008R2 กับ 2017 แล้ว บน Windows 10
  • Update 2023-10-11: Test กับ SQL Server 2019 / 2022 กับ Client Windows 7 / Windows 10 / Windows 11

Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.