สำนักวิทยบริการและเทคโนโลยีสารสนเทศ

Office of Academic Resources and Information Technology

วิธีเปิดพอร์ตเพื่อให้ MS SQL Server สามารถเชื่อมต่อเครื่องอื่นได้

 
บทความนี้ขอแสดงขั้นตอน พร้อมตัวอย่างการคอนฟิกใน SQL Server 2008 R2 เพื่อเปิดพอร์ต TCP 1433 และการคอนฟิกอนุญาตใน Windows Firewall เพื่อให้เครื่องอื่นๆ ไม่ว่าจะรัน Windows, Linux, UNIX สามารถเชื่อมต่อเข้ามาได้ โดยจะทดสอบบน Windows 7 Service Pack 1 (64-bit)

ในเมนู Microsoft SQL Server 2008 R2 ภายใต้ Configuration Tools คลิ้กที่ SQL Server Configuration Manager
00
 
ใน SQL Server Configuration Manager ภายใต้ SQL Server Network Configuration คลิ้กที่ Protocols for MSSQLSERVER จะมีรายชื่อโปรโตคอลพร้อมสถานะแสดงอยู่ด้านขวา
01
 
โดยดีฟอลต์จากการติดตั้งที่ผู้เขียนได้ลอง สถานะของ TCP/IP เป็น Disabled หมายความว่าไม่ได้เปิดพอร์ตเพื่อให้เครื่องอื่นเชื่อมต่อเข้ามาได้โดยใช้ TCP/IP
คลิ้กที่ TCP/IP เพื่อเปลี่ยนสถานะ
คลิ้กที่ Enabled เปลี่ยนให้เป็น Yes แล้วกดปุ่ม OK
02
จะมีคำเตือนขึ้นมาว่า การเปลี่ยนแปลงจะถูกบันทึก แต่คอนฟิกยังไม่มีผลจนกระทั่งเซอร์วิสมีการปิดและรีสตาร์ตใหม่
03-Warning-not-effect-until-restart
 
แปลว่าเราต้องรีสตาร์ตเซอร์วิส SQL Server
กดปุ่ม OK หน้าจอจะกลับมาที่ SQL Server Configuration Manager
คลิ้กที่ SQL Server Services  จะมีรายชื่อเซอร์วิส และสถานะการรัน แสดงอยู่ด้านขวามือ
04-SQL-Server-Service
 
คลิ้กที่ SQL Server (MSSQLSERVER) หน้าจอจะแสดง SQL Server (MSSQLSERVER) Properties
กดปุ่ม Restart เพื่อรีสตาร์ตเซอร์วิส
05-MSSQLSERVER-Properties
 
ตอนนี้เราได้คอนฟิกเปิดพอร์ต TCP เรียบร้อยแล้ว โดยดีฟอลต์จะเป็นพอร์ต TCP 1433
วิธีการตรวจสอบสถานะการเปิด อาจลองเข้า cmd แล้วพิมพ์คำสั่ง netstat -an ดู ถ้ามีบรรทัด TCP 0.0.0.0:1433 อยู่แสดงว่าพอร์ตนี้เปิดพร้อมรับการเชื่อมต่อแล้ว
06-netstat-an

 

การแก้ไข Windows Firewall

ด้วยเหตุผลทางด้านความปลอดภัย Windows เวอร์ชั่นใหม่ๆ ดีฟอลต์จะคอนฟิก Windows Firewall มาให้เลย โดยจะปิดพอร์ตการเชื่อมต่อจากภายนอก
ดังนั้นหลังจากแก้ไขคอนฟิกใน SQL Server เปิดพอร์ต TCP แล้ว เราต้องมาแก้ไข Windows Firewall ให้อนุญาตการเชื่อมต่อเข้าพอร์ต TCP 1433 ด้วย
ในหน้า Network and Sharing Center ด้านซ้ายมือล่างจะมีลิ้งค์ให้กด Windows Firewall
F00-1
 
ในหน้า Windows Firewall ด้านซ้ายมือ คลิ้กที่ Advanced settings
F00-2
 
หน้าจอ Windows Firewall with Advanced Security ด้านซ้ายมือคลิ้ก Inbound Rules จะแสดง rules อนุญาตการเชื่อมต่อจากเครื่องอื่น
ด้านขวามือคลิ้ก New Rule เพื่อเข้าสู่ขั้นตอนการเพิ่ม rule ใหม่ เพื่ออนุญาตการเชื่อมต่อจากภายนอก
F01
 
ในหน้า Rule Type คลิ้กเลือก [x] Port แล้วกด Next
F02-Port
 
ในหน้า Protocol and Ports คลิ้กเลือก [x] TCP แล้วเลือก [x] Specific local ports: ในช่องกรอกตัวเลข 1433 แล้วกด Next
F03-TCP-1433
 
ในหน้า Action คลิ้กเลือก [x] Allow the connection
F04
 
ในหน้า Profile คลิ้กเลือกออปชั่นสำหรับขอบเขต network การอนุญาต ถ้าให้เข้าได้เฉพาะจากภายใน ก็เลือกเฉพาะ Domain และ Private
F05
 
ในหน้า Name ใส่ชื่อ rule ที่เราจะสร้าง แล้วกด Finish
F06
 
เสร็จสิ้น rule ที่เราเพิ่มจะเข้าไปอยู่ใน Inbound Rules
F07
 
เท่านี้ก็เสร็จสิ้นการเปิดพอร์ตและการอนุญาตการเชื่อมต่อใน Windows Firewall ของ SQL Server แล้วครับ
 
Ref : http://spalinux.com