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

MySQL: ตรวจสอบสิทธิ์ผู้ใช้ก่อนสร้างฐานข้อมูล (SHOW GRANTS)

การตรวจสอบสิทธิ์ด้วย 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 หรือการดำเนินการที่ต้องการสิทธิ์พิเศษ