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

MySQL ป้องกัน Client ไม่ได้รับอนุญาตอย่างไร

ระบบควบคุมการเข้าถึง 2 ขั้นตอน

ขั้นตอนที่ 1: Connection Verification

  • Client ต้องมี username และ password ที่ถูกต้อง
  • Host ที่เชื่อมต่อต้องตรงกับ Host ใน Grant Table (user table)
  • ล้มเหลว → ปฏิเสธการเชื่อมต่อทันที

ขั้นตอนที่ 2: Request Verification

  • หลังเชื่อมต่อสำเร็จ ทุก Statement จะถูกตรวจสอบสิทธิ์
  • ตรวจสอบที่ระดับ: Database, Table, Column
  • ยืดหยุ่น: กำหนดสิทธิ์ละเอียดได้ (SELECT เฉพาะคอลัมน์บางคอลัมน์)

ตัวอย่างการทำงาน

-- 1. เชื่อมต่อ: ตรวจ user, password, host
mysql -u app_user -p -h 192.168.1.10

-- 2. รัน Query: ตรวจสิทธิ์ SELECT บน db.table.column
SELECT salary FROM hr.employees WHERE id = 1;
-- ตรวจ: user มี SELECT บน hr.*? หรือ hr.employees? หรือ hr.employees.salary?

ข้อดี

  • ป้องกันการเข้าถึงข้อมูลไม่ได้รับอนุญาต
  • รองรับ Principle of Least Privilege
  • Audit trail ผ่าน General Query Log / Audit Plugin