การดูสิทธิ์ระดับ Schema (Database)
ใช้ View INFORMATION_SCHEMA.SCHEMA_PRIVILEGES เพื่อดูสิทธิ์ที่มอบให้ต่อ Database
คำสั่ง
mysql> select * from INFORMATION_SCHEMA.SCHEMA_PRIVILEGES;
ผลลัพธ์ตัวอย่าง (ตัดให้สั้น)
+-----------------------------+---------------+--------------------+-------------------------+--------------+
| GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | PRIVILEGE_TYPE | IS_GRANTABLE |
+-----------------------------+---------------+--------------------+-------------------------+--------------+
| 'mysql.sys'@'localhost' | def | sys | TRIGGER | NO |
| 'Adam Smith'@'localhost' | def | test | SELECT | NO |
| 'Adam Smith'@'localhost' | def | test | INSERT | NO |
| ... | ... | ... | ... | ... |
| 'Robert'@'%' | def | sample | SELECT | YES |
| 'Robert'@'%' | def | sample | INSERT | YES |
| ... | ... | ... | ... | ... |
+-----------------------------+---------------+--------------------+-------------------------+--------------+
คอลัมน์สำคัญ
GRANTEE- ผู้ใช้ 'user'@'host'TABLE_SCHEMA- ชื่อ Database (Schema)PRIVILEGE_TYPE- ประเภทสิทธิ์ (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, ...)IS_GRANTABLE- YES = สามารถมอบสิทธิ์นี้ให้ผู้อื่นได้ (WITH GRANT OPTION)
View อื่นๆ สำหรับสิทธิ์
USER_PRIVILEGES- สิทธิ์ระดับ Global (*.*)TABLE_PRIVILEGES- สิทธิ์ระดับตารางCOLUMN_PRIVILEGES- สิทธิ์ระดับคอลัมน์SHOW GRANTS FOR 'user'@'host'- ดูสิทธิ์รวมทุกระดับของ User คนใดคนหนึ่ง
สรุป
INFORMATION_SCHEMA.SCHEMA_PRIVILEGES แสดงสิทธิ์ต่อ Database (Schema) ใช้สำหรับ Audit สิทธิ์ผู้ใช้