ฐานข้อมูล mysql มี 5 ตารางสิทธิ์หลัก
1. user table - Global Privileges
- บัญชีผู้ใช้และสิทธิ์ระดับ Global
- MySQL ใช้ตัดสินใจ Accept/Reject การเชื่อมต่อ
- สิทธิ์ที่นี่มีผลต่อทุกฐานข้อมูล
2. db table - Database-level Privileges
- สิทธิ์ระดับฐานข้อมูล
- กำหนดว่า user เข้าถึง database ไหนได้ จาก host ไหน
- ครอบคลุม objects ทั้งหมดใน DB (tables, views, triggers, SP)
3. tables_priv - Table-level Privileges
- สิทธิ์ระดับตาราง
- ครอบคลุมตารางและคอลัมน์ภายใน
4. columns_priv - Column-level Privileges
- สิทธิ์ระดับคอลัมน์เฉพาะเจาะจง
- ใช้ควบคุมการเข้าถึงคอลัมน์ sensitve (salary, password, etc.)
5. procs_priv - Stored Routine Privileges
- สิทธิ์สำหรับ Stored Procedures และ Functions
- ควบคุม EXECUTE, ALTER ROUTINE, GRANT
ลำดับการตรวจสอบสิทธิ์
- user table (Global)
- db table (Database)
- tables_priv (Table)
- columns_priv (Column)
- procs_priv (Routine)
สิทธิ์ระดับต่ำจะ override ระดับสูงได้