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

แสดงสิทธิ์ (Grants) ของผู้ใช้เฉพาะใน MySQL ด้วย SHOW GRANTS

ใน 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 บน mysql database หรือเป็น Root/Super user