การตรวจสอบสิทธิ์ด้วย SHOW GRANTS
คำสั่ง SHOW GRANTS FOR user แสดงสิทธิ์ (Privileges) ที่ผู้ใช้มี
กรณีที่ 1: ผู้ใช้ปัจจุบัน (Current User)
mysql> show grants for current_user;
ผลลัพธ์ (ตัวอย่าง root):
+-------------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ... ON *.* |
| GRANT BACKUP_ADMIN, BINLOG_ADMIN, ... ON *.* |
+-------------------------------------------------------------------+
กรณีที่ 2: ผู้ใช้รายอื่น
mysql> show grants for 'Bob'@'%';
ผลลัพธ์จะแสดงสิทธิ์ของ Bob
สิทธิ์ที่จำเป็นสำหรับ CREATE DATABASE
CREATE- สร้างฐานข้อมูล/ตารางCREATE DATABASE(MySQL 8.0+) - สร้างฐานข้อมูลโดยเฉพาะ
การตรวจสอบแบบ Query
-- ตรวจสอบว่ามีสิทธิ์ CREATE หรือไม่
SELECT * FROM information_schema.USER_PRIVILEGES
WHERE GRANTEE = 'root@%' AND PRIVILEGE_TYPE = 'CREATE';
สรุป
ใช้ SHOW GRANTS FOR 'user'@'host' เพื่อดูสิทธิ์ครบถ้วน ก่อนทำการ CREATE DATABASE หรือการดำเนินการที่ต้องการสิทธิ์พิเศษ