ใน MySQL สามารถดูสิทธิ์ (Privileges) ที่มอบให้กับ User account ใดๆ ได้โดยใช้คำสั่ง SHOW GRANTS FOR 'user'@'host'
ขั้นตอนการตรวจสอบ
1. ดูรายชื่อ User ทั้งหมด:
mysql> select user, host from mysql.user;
ผลลัพธ์ตัวอย่าง (บางส่วน):
+------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | John | localhost | | Chris | localhost | | ... | ... | +------------------+-----------+
2. ดูสิทธิ์ของ User เฉพาะ (เช่น John@localhost)
mysql> show grants for 'John'@'localhost';
ผลลัพธ์ (ตัวอย่าง)
+----------------------------------------------------------------------------------------------------------------------------------+ | Grants for John@localhost | +----------------------------------------------------------------------------------------------------------------------------------+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ... ON *.* TO `John`@`localhost` | | GRANT BACKUP_ADMIN, BINLOG_ADMIN, CONNECTION_ADMIN, ... ON *.* TO `John`@`localhost` | +----------------------------------------------------------------------------------------------------------------------------------+
คำอธิบาย:
- สิทธิ์ระดับ Global (ON *.*): ใช้ได้กับทุกฐานข้อมูล/ตาราง
- สิทธิ์ระดับ Database:
GRANT ... ON dbname.* TO ... - สิทธิ์ระดับ Table:
GRANT ... ON dbname.tablename TO ... - สิทธิ์ระดับ Column:
GRANT SELECT (col1, col2) ON dbname.tablename TO ... - คำสั่ง
SHOW GRANTSต้องมีสิทธิ์SELECTบนmysqldatabase หรือเป็น Root/Super user