-- ผู้ใช้สำหรับอ่านรายงานอย่างเดียว
CREATE USER 'report'@'localhost' IDENTIFIED BY 'รหัสผ่านอีกชุด';
GRANT SELECT ON shopdb.* TO 'report'@'localhost';
-- แอปที่อ่านเขียนข้อมูลได้ แต่แก้โครงสร้างตารางไม่ได้
GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO 'shopuser'@'localhost';
คำสั่ง GRANT มีผลทันที ไม่จำเป็นต้องรัน FLUSH PRIVILEGES (คำสั่งนี้จำเป็นเฉพาะกรณีแก้ตารางสิทธิ์ในฐานข้อมูล mysql โดยตรง)
ขั้นตอนที่ 5: จัดการผู้ใช้ภายหลัง
-- ดูสิทธิ์ของผู้ใช้
SHOW GRANTS FOR 'shopuser'@'localhost';
-- เปลี่ยนรหัสผ่าน
ALTER USER 'shopuser'@'localhost' IDENTIFIED BY 'รหัสผ่านใหม่';
-- ยกเลิกสิทธิ์บางอย่าง
REVOKE DELETE ON shopdb.* FROM 'shopuser'@'localhost';
-- ดูรายชื่อผู้ใช้ทั้งหมด
SELECT user, host FROM mysql.user;
-- ลบผู้ใช้
DROP USER 'report'@'localhost';
ERROR 1410: You are not allowed to create a user with GRANT
MySQL 8 ไม่สร้างผู้ใช้ให้อัตโนมัติจากคำสั่ง GRANT อีกแล้ว ต้องรัน CREATE USER ก่อน แล้วจึง GRANT (MariaDB ยังยอมให้ทำในคำสั่งเดียวได้ แต่แยกสองคำสั่งจะใช้ได้กับทั้งสองระบบ)
ERROR 1819: Your password does not satisfy the current policy requirements
MySQL เปิด Component validate_password ไว้ ให้ใช้รหัสผ่านที่ยาวขึ้นและมีตัวพิมพ์ใหญ่ เล็ก ตัวเลข และสัญลักษณ์ครบ ดูเกณฑ์ปัจจุบันได้ด้วย SHOW VARIABLES LIKE 'validate_password%';
ERROR 1396: Operation CREATE USER failed
มีผู้ใช้ชื่อและ Host นี้อยู่แล้ว ตรวจด้วย SELECT user, host FROM mysql.user; หากต้องการตั้งรหัสผ่านใหม่ให้ใช้ ALTER USER แทน
หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมงาน Support ของ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ โดยแจ้งชื่อเซิร์ฟเวอร์ ระบบปฏิบัติการ ขั้นตอนที่ทำไปแล้ว และข้อความ Error ที่พบ เพื่อให้ตรวจสอบได้รวดเร็วขึ้น