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

ให้สิทธิ์ MySQL User ด้วย GRANT Statement

คำสั่ง GRANT

มอบสิทธิ์ให้ User Account สามารถสร้าง User ใหม่ได้อีกด้วย

Syntax

GRANT privilege[, privilege]... 
ON privilege_level 
TO user [IDENTIFIED BY 'password'] 
[REQUIRE tls_option] 
[WITH [GRANT_OPTION | resource_option]];

องค์ประกอบ

  1. Privileges: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALL, etc.
  2. Privilege Level: *.* (Global), db.* (Database), db.table (Table), db.table.col (Column)
  3. User: 'user'@'host' - สร้างใหม่หรือแก้ไข user เดิม
  4. IDENTIFIED BY: ตั้งรหัสผ่าน (optional)
  5. REQUIRE: บังคับ SSL/X509 (optional)
  6. WITH GRANT OPTION: อนุญาตให้ user นี้ GRANT ให้คนอื่น
  7. WITH resource_option: จำกัด resource (MAX_QUERIES_PER_HOUR, etc.)

ตัวอย่างครบ

-- สร้าง user
CREATE USER abcd@localhost IDENTIFIED BY 'password123';

-- ให้สิทธิ์ทั้งหมด รวม GRANT OPTION
GRANT ALL ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION;

-- ตรวจสอบ
SHOW GRANTS FOR abcd@localhost;
+---------------------------------------------------------------------+
| Grants for abcd@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+

ตัวอย่างให้สิทธิ์เฉพาะ

GRANT SELECT, INSERT ON mydb.* TO 'app_user'@'%' IDENTIFIED BY 'pass';
GRANT SELECT (id, name, email) ON mydb.users TO 'report_user'@'%';