ระบบควบคุมการเข้าถึง 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