Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เปิดการเข้าถึง MySQL Root จากทุก Host (% wildcard)

⚠️ คำเตือน: การเปิด Root ให้เข้าถึงจากทุก Host (% wildcard) เป็นช่องโหว่ด้านความปลอดภัยร้ายแรง ควรทำเฉพาะในสภาพแวดล้อม Development/Testing เท่านั้น

ขั้นตอนการเปิด Root Access จากทุก Host

1. เลือก Database mysql

USE mysql;

2. อัปเดต Host ของ User root

UPDATE user SET host = '%' WHERE host = 'localhost' AND user = 'root';

3. Flush Privileges

FLUSH PRIVILEGES;

วิธีที่ปลอดภัยกว่า (แนะนำ)

สร้าง User ใหม่สำหรับ Remote Access

-- สร้าง user ใหม่
CREATE USER 'app_user'@'%' IDENTIFIED BY 'strong_password';

-- ให้สิทธิ์เฉพาะ Database ที่ต้องการ
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'%';

FLUSH PRIVILEGES;

จำกัด IP เฉพาะที่เชื่อถือได้

CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'strong_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'192.168.1.%';

การตรวจสอบสิทธิ์

SELECT user, host FROM mysql.user WHERE user = 'root';

Best Practice สำหรับ Production

  • ❌ ไม่ให้ Root เข้าถึงจาก % (Wildcard)
  • ✅ สร้าง User เฉพาะ Application พร้อม Password แข็งแกร่ง
  • ✅ ใช้ SSL/TLS สำหรับ Connection
  • ✅ จำกัด IP ด้วย Firewall / Security Group
  • ✅ ให้สิทธิ์น้อยที่สุด (Principle of Least Privilege)
  • ✅ ปิด Port 3306 จาก Internet โดยตรง