หากคุณทำงานกับ ฐานข้อมูล MySQL แสดงว่าคุณทราบถึงความท้าทายที่ต้องเผชิญในการทำให้ฐานข้อมูลของคุณปลอดภัย จากการพยายามแฮ็กฐานข้อมูลโดยใช้การฉีด SQL เพื่อโจมตีแบบเดรัจฉาน การรักษาข้อมูลของคุณให้ปลอดภัยเป็นเรื่องยาก โดยเฉพาะอย่างยิ่งหากคุณทำงานกับฐานข้อมูลจากระยะไกล
มีวิธีกำหนดค่าเซิร์ฟเวอร์ SQL เพื่ออนุญาตการเชื่อมต่อระยะไกล แต่คุณต้องระมัดระวัง เนื่องจากการอนุญาตการเชื่อมต่อระยะไกลบนเซิร์ฟเวอร์ MySQL สามารถทำให้ฐานข้อมูลของคุณเป็นเป้าหมายที่ง่ายดายสำหรับแฮกเกอร์ หากคุณต้องการอนุญาตการเชื่อมต่อระยะไกลที่ปลอดภัยไปยังฐานข้อมูล MySQL นี่คือสิ่งที่คุณจำเป็นต้องรู้
ก่อนคุณ เริ่มต้น
ก่อนที่คุณจะทำการเปลี่ยนแปลงใดๆ กับฐานข้อมูล MySQL ของคุณ คุณต้องสำรองฐานข้อมูลของคุณโดยเฉพาะอย่างยิ่งหากคุณกำลังทำงานบนเซิร์ฟเวอร์ที่ใช้งานจริง (เซิร์ฟเวอร์ ในการใช้งานจริง) การเปลี่ยนแปลงใดๆ ที่คุณทำกับฐานข้อมูลหรือเซิร์ฟเวอร์ที่โฮสต์ฐานข้อมูล อาจส่งผลให้ข้อมูลสูญหายอย่างรุนแรงหากมีสิ่งผิดปกติเกิดขึ้น
คุณอาจพบว่าการเปลี่ยนแปลงการเชื่อมต่อของเซิร์ฟเวอร์อาจทำให้คุณไม่สามารถเข้าถึงได้ในภายหลัง หากเกิดเหตุการณ์นี้ คุณอาจต้องปรึกษากับผู้ดูแลระบบเซิร์ฟเวอร์เพื่อขอรับการสนับสนุนเพิ่มเติม ความคิดที่ดีคือการทดลองใช้การเปลี่ยนแปลงใดๆ บนเซิร์ฟเวอร์ MySQL ที่ทำงานในเครื่องเพื่อตรวจสอบว่าการเปลี่ยนแปลงของคุณได้ผลหรือไม่ก่อนที่จะลองจากระยะไกล
นอกจากนี้ยังมีแนวโน้มว่าหากคุณทำการเปลี่ยนแปลงกับเซิร์ฟเวอร์ระยะไกล คุณจะ จะต้องมีวิธีที่ปลอดภัยในการเชื่อมต่อและทำการเปลี่ยนแปลง SSH (Secure Shell)มักเป็นวิธีที่ดีที่สุด เนื่องจากช่วยให้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้ คุณยังสามารถใช้ SSH เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ในเครือข่ายท้องถิ่นของคุณ เช่น โฮสต์บน Raspberry Pi เหล่านั้น
คู่มือนี้จะนำคุณผ่านขั้นตอนต่างๆ กำหนดค่า MySQL เพื่ออนุญาตการเชื่อมต่อระยะไกล แต่คุณจะต้องแน่ใจว่าคุณมีการเข้าถึงโดยตรงหรือระยะไกลไปยังเซิร์ฟเวอร์ที่โฮสต์เซิร์ฟเวอร์ MySQL ของคุณก่อน
สมมติว่าคุณไม่มีสิทธิ์เข้าถึงเซิร์ฟเวอร์ของคุณจากระยะไกลผ่าน SSH (ตัวอย่าง) ในกรณีนั้น คุณจะไม่สามารถกำหนดค่าฐานข้อมูล MySQL ของคุณเพื่ออนุญาตการเชื่อมต่อระยะไกลได้โดยตรง เว้นแต่บัญชี root mySQL ของคุณจะอนุญาตการเชื่อมต่อระยะไกลอยู่แล้ว ดังนั้น คุณจะต้องสร้างการเชื่อมต่อนี้ก่อนจึงจะสามารถดำเนินการต่อได้
การแก้ไขไฟล์การกำหนดค่า MySQL ของคุณ
ขั้นตอนแรกในการกำหนดค่า MySQL เพื่ออนุญาตรีโมต การเชื่อมต่อคือการแก้ไขไฟล์กำหนดค่า MySQL ของคุณ ในขั้นตอนนี้ คู่มือนี้จะถือว่าคุณได้เชื่อมต่อกับเซิร์ฟเวอร์ พีซี หรือ Mac ที่โฮสต์ฐานข้อมูล mySQL จากระยะไกลแล้วและมีสิทธิ์เข้าถึงคอนโซล
อีกวิธีหนึ่ง คุณสามารถกำหนดค่าเซิร์ฟเวอร์ MySQL ในเครื่องโดยใช้เทอร์มินัลแบบเปิดบน Mac หรือ Linux หรือโปรแกรมแก้ไขข้อความบน Windows
ตำแหน่งที่อ้างอิงด้านบนเป็นตำแหน่งเริ่มต้น สำหรับไฟล์คอนฟิกูเรชัน MySQL หากคำสั่งเหล่านี้ใช้ไม่ได้ คุณจะต้องค้นหาไฟล์ที่เกี่ยวข้อง (my.cnf, mysqld.cnfหรือ my.inistrong>) ด้วยตนเองเพื่อค้นหาเส้นทางของไฟล์ที่เกี่ยวข้อง
การตั้งค่าช่วง IP ของ Safe Bind-Address
- ถัดไป ผู้ใช้ Linux และ Mac สามารถรีสตาร์ท MySQL ได้โดยพิมพ์ mysql.server stop && mysql.server startหรือ mysql.server restartคุณอาจต้องยกระดับคำสั่ง ใช้ sudo (เช่น sudo mysql.server restart) และใช้เส้นทางที่เหมาะสมไปยังไฟล์ mysql.server (เช่น /usr /local/bin/mysql.server)
หากคุณไม่แน่ใจในชื่อบริการที่ถูกต้องบน Windows ให้พิมพ์ net startเพื่อค้นหาหากคุณไม่สามารถโหลดการกำหนดค่าของคุณได้ ให้รีสตาร์ทเซิร์ฟเวอร์และโหลด MySQL ใหม่ด้วยตนเอง (หากจำเป็น) แทน
การกำหนดค่าไฟร์วอลล์ของคุณ
ในขั้นตอนนี้ ฐานข้อมูล MySQL ของคุณควรอนุญาตการเชื่อมต่อระยะไกลจากอุปกรณ์ต่างๆ โดยใช้ที่อยู่ IP ที่คุณตั้งค่าเป็นค่า bind-addressในไฟล์การกำหนดค่า MySQL ของคุณ (หรือจากอุปกรณ์ทั้งหมดหากคุณตั้งค่านี้เป็น 0.0.0.0แทน) อย่างไรก็ตาม การเชื่อมต่อจะยังคงถูกบล็อกโดยอุปกรณ์หรือไฟร์วอลล์เครือข่ายของคุณ
เซิร์ฟเวอร์และพีซีส่วนใหญ่ใช้ไฟร์วอลล์เพื่อบล็อกการเชื่อมต่อ เว้นแต่จะได้รับสิทธิ์เข้าถึงพอร์ตเฉพาะ ขั้นตอนในการกำหนดค่านี้จะแตกต่างกันไป ขึ้นอยู่กับว่าคุณใช้งาน MySQL บน Windows หรือ Linux ไฟร์วอลล์ Mac ถูกปิดใช้งานโดยค่าเริ่มต้น ดังนั้นคุณจึงไม่จำเป็นต้องทำตามขั้นตอนเพิ่มเติมที่นี่
กำหนดค่าไฟร์วอลล์ Linux
เซิร์ฟเวอร์ Linux จำนวนมากใช้ iptablesเป็นยูทิลิตี้ไฟร์วอลล์เริ่มต้น คุณสามารถกำหนดค่าได้โดยทำตามขั้นตอนด้านล่าง
หาก iptables ไม่ใช่เครื่องมือไฟร์วอลล์เริ่มต้นสำหรับการแจกจ่าย Linux คุณจะต้องอ่านข้อมูลเพิ่มเติมในคู่มือผู้ใช้ของการแจกจ่ายของคุณ หากบางแพ็คเกจ (เช่น netfilter-persistent) ไม่พร้อมใช้งาน ให้ใช้เครื่องมือพื้นที่เก็บข้อมูลซอฟต์แวร์ของการแจกจ่ายของคุณเพื่อติดตั้ง (เช่น sudo apt install netfilter-persistent)
กำหนดค่าไฟร์วอลล์ Windows
หากคุณใช้พีซีหรือเซิร์ฟเวอร์ Windows เพื่อโฮสต์ฐานข้อมูลของคุณ คุณสามารถกำหนดค่าไฟร์วอลล์ของคุณโดยใช้ขั้นตอนเหล่านี้:
หากคุณมีปัญหาในการเชื่อมต่อ ให้ทำซ้ำขั้นตอนเหล่านี้ด้านบน ตรวจสอบให้แน่ใจว่าได้สร้าง กฎขาออกใหม่ในการตั้งค่าไฟร์วอลล์ของคุณโดยใช้รายละเอียดเดียวกัน (พอร์ต 3306 เป็นต้น) คุณอาจต้องกำหนดค่าเราเตอร์เครือข่ายภายในเป็น เปิดพอร์ตที่ถูกบล็อกที่จำเป็น เพื่ออนุญาตการเชื่อมต่อขาเข้าและขาออกไปยังฐานข้อมูลของคุณ
การเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลโดยใช้ MySQL
หลังจากกำหนดค่าฐานข้อมูล MySQL ของคุณเพื่ออนุญาตการเชื่อมต่อระยะไกล คุณจะต้องสร้างการเชื่อมต่อกับฐานข้อมูลจริงๆ คุณสามารถทำได้โดยใช้คำสั่ง mysql(mysql.exeใน Windows) จากเทอร์มินัลหรือหน้าต่าง PowerShell
หากคุณใช้ Windows คุณจะต้องแน่ใจว่า ติดตั้ง MySQL ในเครื่องแล้ว ก่อนที่คุณจะเริ่ม ผู้ใช้ Mac สามารถติดตั้ง MySQL ใช้โฮมบรูว์ จากเทอร์มินัล (brew install mysql) ในขณะที่ผู้ใช้ Linux สามารถใช้ที่เก็บแอปในเครื่อง (เช่น sudo apt install mysqlstrong>) เพื่อติดตั้งแพ็คเกจที่จำเป็น
เชื่อมต่อกับ MySQL บน Linux หรือ Mac
กำลังเชื่อมต่อกับ MySQL บน Windows
หากไม่ได้ผล ให้เชื่อมต่อกับเซิร์ฟเวอร์หรือพีซีที่โฮสต์เซิร์ฟเวอร์ MySQL ของคุณโดยใช้ SSH (หรือเข้าถึงโดยตรง) โดยใช้ขั้นตอนเหล่านี้และใช้อาร์กิวเมนต์ -h localhostจากนั้นคุณสามารถสร้างบัญชีผู้ใช้ที่เหมาะสมได้โดยทำตามขั้นตอนด้านล่าง
การอนุญาตให้ผู้ใช้ระยะไกลเข้าถึงฐานข้อมูล MySQL
เมื่อถึงจุดนี้ คุณควรจะเป็น สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ของคุณจากระยะไกลโดยใช้บัญชีผู้ใช้รูทของเซิร์ฟเวอร์หรือบัญชีผู้ใช้อื่นที่มีสิทธิ์ระดับสูง เนื่องจากการเข้าถึงระดับนี้ไม่ปลอดภัย คุณอาจต้องการสร้างบัญชีที่จำกัดมากขึ้นสำหรับการเข้าถึงฐานข้อมูล MySQL ของคุณ
บัญชีนี้จะถูกจำกัดการเข้าถึงเซิร์ฟเวอร์ MySQL ของคุณ เพื่อให้สามารถโต้ตอบกับฐานข้อมูลที่เลือกเท่านั้น จะไม่สามารถทำการเปลี่ยนแปลงที่ร้ายแรงกว่านี้ได้ เช่น การเข้าถึงข้อมูลฐานข้อมูลอื่น การสร้างบัญชีผู้ใช้ใหม่ ฯลฯ
คุณจะต้องสามารถลงชื่อเข้าใช้เซิร์ฟเวอร์ MySQL จากระยะไกลได้ หากคุณไม่สามารถใช้บัญชีรูทของคุณจากระยะไกล คุณจะต้องเข้าถึงเชลล์ของเซิร์ฟเวอร์โดยใช้คำสั่ง mysqlผ่านการเชื่อมต่อ SSH ระยะไกล หรือโดยการเข้าถึงพีซีหรือเซิร์ฟเวอร์ที่โฮสต์เซิร์ฟเวอร์โดยตรงp>
เมื่อได้รับสิทธิ์ในการเข้าถึง ให้ใช้ขั้นตอนในหัวข้อด้านบนเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของคุณจากระยะไกลโดยใช้บัญชีใหม่ของคุณ (เช่น mysql -u username -h XXXX:XXXX -p).
การรักษาความปลอดภัยข้อมูลฐานข้อมูลของคุณ
ไม่ว่าคุณจะทำงานกับ MySQL หรือ SQL ประเภทอื่น ฐานข้อมูล การรักษาการเชื่อมต่อของคุณให้ปลอดภัยเพื่อรักษาความปลอดภัยของข้อมูลของคุณเป็นสิ่งสำคัญ วิธีที่ดีในการทำเช่นนี้คือการ สร้างคีย์ SSH สำหรับการเข้าถึงระยะไกล ไปยังเซิร์ฟเวอร์ของคุณ แทนที่จะใช้รหัสผ่านที่ล้าสมัย (และคาดเดาได้ง่าย)
หากคุณกังวลเกี่ยวกับการสูญเสียข้อมูล คุณสามารถ สำรองฐานข้อมูลของคุณ ออนไลน์ได้อย่างง่ายดาย ฐานข้อมูลส่วนใหญ่ทำงานโดยใช้เซิร์ฟเวอร์ Linux คุณทำได้ สำรองข้อมูลไฟล์ Linux โดยอัตโนมัติอย่างง่ายดาย หากคุณใช้งาน MySQL บน Windows คุณสามารถตั้งค่า ระบบสำรองข้อมูลอัตโนมัติสำหรับ Windows ที่คล้ายกัน ซึ่งจะทำให้คุณสามารถกู้คืนข้อมูลของคุณในกรณีฉุกเฉินได้