Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: แสดงสิทธิ์ทั้งหมดของผู้ใช้ (INFORMATION_SCHEMA)

การดูสิทธิ์ระดับ 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 สิทธิ์ผู้ใช้