การเปิดเซิร์ฟเวอร์ SQL ไปยังการเชื่อมต่อภายนอกโดยตรงเป็นแนวคิดที่จะหลีกเลี่ยงหากคุณทำได้ - คุณกำลังเพิ่มพื้นที่ผิวที่มองเห็นได้สำหรับการโจมตีและการสื่อสารใด ๆ ระหว่างคุณกับเซิร์ฟเวอร์ (นอกเหนือจากข้อมูลรับรองการเข้าสู่ระบบในขั้นตอนการตรวจสอบสิทธิ์) การเข้ารหัส หากคุณต้องเปิดพอร์ตตรวจสอบให้แน่ใจว่าได้เปิดเฉพาะที่อยู่ IP คงที่ของคุณเท่านั้น (สมมติว่าคุณมีที่อยู่คงที่ซึ่งไม่ได้ใช้ร่วมกันโดยบุคคลอื่นเช่นคุณไม่ได้ใช้ ISP ที่มีข้อตกลง NAT เช่น ผู้ให้บริการอินเทอร์เน็ตบนมือถือส่วนใหญ่)
ตัวเลือกที่ดีกว่าคือการติดตั้งการตั้งค่า VPN (เช่นOpenVPNเป็นต้น) หรือบริการ SSH ( Cygwinรวมถึงพอร์ตของ OpenSSH มาตรฐานทั่วไปที่ฉันให้กองทุนทำงานในขณะนี้รวมถึงบริการภายใต้ Windows 2003 และ 2008) ที่คุณสามารถเชื่อมต่อผ่านอุโมงค์ได้ วิธีนี้ SSH หรือ VPN จัดการทั้งการรับรองความถูกต้องและการเข้ารหัสและการเพิ่ม (สมมติว่าคุณมีรหัสผ่าน / คีย์ที่ปลอดภัย) ชั้นการป้องกันที่สำคัญที่พอร์ตเปิดโดยตรงจะไม่มี การสนับสนุนการบีบอัดที่พวกเขาเสนอจะช่วยเวลาตอบสนองสำหรับแบบสอบถามใด ๆ ที่ส่งคืนข้อมูลมากกว่าจำนวนเล็กน้อยเช่นกัน การจัดเรียงตาม SSHd อาจจะง่ายต่อการติดตั้งโดยเฉพาะอย่างยิ่งถ้าคุณคุ้นเคยกับ SSH อยู่แล้วแม้ว่า VPNs จริงส่วนใหญ่ (เช่น OpenVPN) มีข้อได้เปรียบที่การสื่อสารกับพวกเขานั้นมีแนวโน้มที่จะรอดชีวิตจากการสื่อสารสั้น ๆ ซิงค์และเชื่อมต่อใหม่) ตัวเลือก VPN ยังสร้างความยุ่งยากให้น้อยลงถ้าคุณมีเซิร์ฟเวอร์ SQL หลายอินสแตนซ์ที่ทำงานบนเครื่องเป้าหมายหรือที่ไซต์เป้าหมาย ฉันใช้ทั้งสองวิธีอย่างประสบความสำเร็จสำหรับสิ่งต่าง ๆ รวมถึงการพูดคุยกับ SQL Server โดยใช้เครื่องมือมาตรฐานรุ่นท้องถิ่นและพบว่ามันทำงานได้ดี (แม้ว่าเซิร์ฟเวอร์ OpenVPN ของฉันทั้งหมดบน Linux แต่ฉันบอกว่ามันทำงานได้ดีเช่นกัน เซิร์ฟเวอร์บน Windows ด้วย)
การเชื่อมต่อกับเครื่องระยะไกล (ใน) โดยตรงเช่นนี้จะสะดวกมาก แต่โปรดทราบว่าแม้จะมีการตั้งค่า VPN อย่างระมัดระวังคุณกำลังเพิ่มจำนวนเครื่องที่ SQL Server ของคุณต้องเผชิญดังนั้นโดยเฉพาะอย่างยิ่งหากเป็นระบบการผลิตด้วย ข้อมูลจริงของผู้ใช้ตรวจสอบให้แน่ใจว่าคุณใช้เวลาในการตรวจสอบให้แน่ใจว่าเครื่องที่สามารถเห็นเซิร์ฟเวอร์ผ่าน VPN / tunnel นั้นปลอดภัยและไม่ติดเชื้อตัวเอง (แน่นอนคุณอาจทำสิ่งนี้ไปแล้ว แต่ก็คุ้มค่าเสมอ!)