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

แสดงสิทธิ์ (Grants) ของผู้ใช้ MySQL ด้วย SHOW GRANTS

บทนำ

คำสั่ง SHOW GRANTS ใช้แสดงสิทธิ์ (Privileges) ที่มอบให้กับ User Account ใน MySQL

รูปแบบการใช้งาน

SHOW GRANTS FOR 'yourUserName'@'yourHostName';

ดูรายชื่อ User และ Host ในระบบ

mysql> SELECT User, Host FROM MySQL.User;

ผลลัพธ์ตัวอย่าง

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| Bob              | %         |
| Charlie          | %         |
| Robert           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam Smith       | localhost |
| Chris            | localhost |
| David            | localhost |
| James            | localhost |
| John             | localhost |
| John Doe         | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
+------------------+-----------+
20 rows in set (0.00 sec)

แสดงสิทธิ์ของ User 'Robert'@'%'

mysql> SHOW GRANTS FOR 'Robert'@'%';

ผลลัพธ์

+----------------------------------------------------------------------+
| Grants for Robert@%                                                  |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Robert`@`%`                                   |
| GRANT ALL PRIVILEGES ON `sample`.* TO `Robert`@`%` WITH GRANT OPTION |
| GRANT EXECUTE ON `web`.* TO `Robert`@`%`                             |
+----------------------------------------------------------------------+
3 rows in set (0.05 sec)

คำอธิบายสิทธิ์

Grant Statementความหมาย
GRANT USAGE ON *.*สิทธิ์พื้นฐาน (Login ได้ แต่ไม่มีสิทธิ์อื่น) - ให้ทุก User อัตโนมัติ
GRANT ALL PRIVILEGES ON `sample`.*สิทธิ์เต็ม (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.) บนฐานข้อมูล sample
WITH GRANT OPTIONอนุญาตให้ User นี้ Grant สิทธิ์ให้ User อื่นได้
GRANT EXECUTE ON `web`.*สิทธิ์รัน Stored Procedure/Function บนฐานข้อมูล web

คำสั่งที่เกี่ยวข้อง

-- ดูสิทธิ์ของ User ปัจจุบัน
SHOW GRANTS;

-- ดูสิทธิ์ของ User อื่น (ต้องมีสิทธิ์ SELECT ON mysql.user)
SHOW GRANTS FOR 'user'@'host';

-- Grant สิทธิ์
GRANT SELECT, INSERT ON db.* TO 'user'@'host';

-- Revoke สิทธิ์
REVOKE INSERT ON db.* FROM 'user'@'host';

-- Flush Privileges (หลังแก้ไขตาราง mysql.user โดยตรง)
FLUSH PRIVILEGES;