วิธีดึงรายการผู้ใช้ MySQL และการจัดการสิทธิ์ | คำอธิบายละเอียด

1. บทนำ

การจัดการผู้ใช้ MySQL เป็นงานสำคัญที่ขาดไม่ได้สำหรับความปลอดภัยของฐานข้อมูลและการดำเนินงานที่มีประสิทธิภาพ โดยเฉพาะอย่างยิ่ง การเข้าใจว่าผู้ใช้คนใดสามารถเข้าถึงฐานข้อมูลได้และมีสิทธิ์อะไรบ้าง จะช่วยให้สามารถจำกัดการเข้าถึงและเสริมความปลอดภัยได้ ในบทความนี้ เราจะอธิบายอย่างกว้างขวางตั้งแต่วิธีการแสดงรายการผู้ใช้ MySQL การดึงข้อมูลรายละเอียด วิธีการสร้างและจัดการผู้ใช้ ไปจนถึงการแก้ไขข้อผิดพลาดที่พบบ่อย ด้วยวิธีนี้ คุณจะเข้าใจพื้นฐานและขั้นตอนการปฏิบัติที่ใช้งานได้จริงของการจัดการผู้ใช้ MySQL

2. วิธีการดึงรายการผู้ใช้

เพื่อดึงรายการผู้ใช้ใน MySQL ให้ใช้ตาราง “mysql.user” ตารางนี้เก็บข้อมูลของผู้ใช้ทั้งหมดที่ลงทะเบียนใน MySQL และสามารถแสดงข้อมูลที่ต้องการด้วยคำสั่งง่าย ๆ

พื้นฐานการแสดงรายการผู้ใช้

ก่อนอื่น ให้เข้าสู่ระบบ MySQL แล้วรันคำสั่งต่อไปนี้
SELECT Host, User FROM mysql.user;
คำสั่งนี้จะแสดง “ชื่อโฮสต์” และ “ชื่อผู้ใช้” ของแต่ละผู้ใช้ในรูปแบบรายการ ตัวอย่างเช่น “localhost” หรือ “127.0.0.1” อาจปรากฏเป็นชื่อโฮสต์ ซึ่งเป็นการเชื่อมต่อภายในของ IPv4 และ IPv6 ตามลำดับ นี่เป็นการตั้งค่าที่มักพบในการจัดการผู้ใช้ในสภาพแวดล้อมท้องถิ่น

การดึงข้อมูลผู้ใช้ทั้งหมด

นอกจากนี้ เพื่อยืนยันข้อมูลที่ละเอียดขึ้น สามารถแสดงคอลัมน์ทั้งหมดของตาราง “mysql.user” ด้วยคำสั่งต่อไปนี้
SELECT * FROM mysql.user;
คำสั่งนี้จะแสดงข้อมูลรายละเอียดของแต่ละผู้ใช้ (เช่น ข้อมูลการรับรองและการตั้งค่าสิทธิ) แต่โดยทั่วไป การระบุเฉพาะคอลัมน์ที่ต้องการจะทำให้มองเห็นง่ายกว่า การใช้วิธีนี้จะทำให้ได้ข้อมูลที่กว้างขวางขึ้น แต่เพื่อให้ผลลัพธ์เป็นระเบียบและอ่านง่าย การเลือกคอลัมน์เฉพาะก็เป็นวิธีที่มีประโยชน์

3. การดึงข้อมูลรายละเอียดของผู้ใช้

ใน MySQL สามารถดึงข้อมูลแฮชรหัสผ่านและข้อมูลสิทธิ์ของผู้ใช้ได้ ซึ่งทำให้การจัดการผู้ใช้มีประสิทธิภาพมากขึ้น

วิธีการแสดงแฮชรหัสผ่าน

ใน MySQL รหัสผ่านจะถูกเข้ารหัสและเก็บเป็นแฮชในคอลัมน์ “authentication_string” สามารถตรวจสอบชื่อโฮสต์ของผู้ใช้ ชื่อผู้ใช้ และแฮชรหัสผ่านด้วยคำสั่งต่อไปนี้
SELECT Host, User, authentication_string FROM mysql.user;
ผลลัพธ์นี้ทำให้คุณสามารถตรวจสอบได้ว่าผู้ใช้แต่ละคนมีการตั้งรหัสผ่านหรือไม่ ค่าฮาชของรหัสผ่านจะแสดงออกมาแต่ไม่สามารถถอดรหัสได้ ทำให้ความปลอดภัยยังคงอยู่ วิธีนี้เป็นประโยชน์อย่างมากเมื่อทำการตรวจสอบผู้ใช้ใหม่หรือสถานะการให้สิทธิ์

การตรวจสอบสิทธิ์ของผู้ใช้เฉพาะ

เพื่อดูว่าผู้ใช้มีสิทธิ์อะไรบ้างในฐานข้อมูลหรือ ตาราง ให้ใช้คำสั่ง “SHOW GRITS”
SHOW GRANTS FOR 'ชื่อผู้ใช้'@'ชื่อโฮสต์';
คำสั่งนี้จะแสดงรายการสิทธิ์ทั้งหมดที่มอบให้กับผู้ใช้ที่ระบุ เป็นคำสั่งที่เป็นประโยชน์สำหรับผู้ดูแลฐานข้อมูลเมื่อตัดสินใจว่าจะมอบสิทธิ์ใดให้กับผู้ใช้เฉพาะ

4. การสร้างและการจัดการผู้ใช้

MySQLจะแนะนำวิธีการสร้างผู้ใช้ใหม่ใน MySQL และตั้งค่า/เปลี่ยนแปลงสิทธิ์

การสร้างผู้ใช้ใหม่

หากต้องการสร้างผู้ใช้ใหม่ ให้ใช้คำสั่ง “CREATE USER” ตัวอย่างต่อไปนี้เป็นการสร้างผู้ใช้ “example_user” และตั้งรหัสผ่านเป็น “password123”
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'password123';
หลังจากสร้างผู้ใช้แล้ว จำเป็นต้องเรียกใช้ “FLUSH PRIVILEGES” เพื่อให้ MySQL ปรับใช้การเปลี่ยนแปลง
FLUSH PRIVILEGES;

ข้อควรระวังในการลบผู้ใช้

เพื่อทำการลบผู้ใช้ที่ไม่ต้องการ ให้ใช้คำสั่ง “DROP USER” อย่างไรก็ตาม ก่อนลบผู้ใช้ ควรตรวจสอบผลกระทบต่อสิทธิ์และข้อมูลที่เกี่ยวข้อง ตัวอย่างเช่น หากผู้ใช้ที่กำลังลบเชื่อมต่อกับระบบหรือบริการอื่น ๆ หลังจากลบอาจทำให้ไม่สามารถเข้าถึงได้ ดังนั้นจึงต้องระมัดระวัง

5. ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข

ในการจัดการผู้ใช้ของ MySQL อาจเกิดข้อผิดพลาดได้ ที่นี่เราจะอธิบายข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข

ข้อผิดพลาดสิทธิ์「Access denied」

ข้อผิดพลาด「Access denied」เกิดขึ้นเมื่อผู้ใช้ไม่มีสิทธิ์ที่เหมาะสมต่อฐานข้อมูลหรือ ตาราง ในกรณีนี้ ผู้ดูแลระบบสามารถมอบสิทธิ์ที่จำเป็นให้กับผู้ใช้ที่เกี่ยวข้องเพื่อแก้ไขได้ สามารถมอบสิทธิ์ต่อฐานข้อมูลเฉพาะด้วยคำสั่งต่อไปนี้
GRANT ALL PRIVILEGES ON database_name.* TO 'ชื่อผู้ใช้'@'ชื่อโฮสต์';
FLUSH PRIVILEGES;

ข้อผิดพลาดการตรวจสอบผู้ใช้「Unknown user」

ข้อผิดพลาด「Unknown user」เกิดขึ้นเมื่อผู้ใช้ที่ระบุไม่มีอยู่ หากพบข้อผิดพลาดนี้ ให้ตรวจสอบว่าชื่อผู้ใช้และโฮสต์ถูกระบุอย่างถูกต้องหรือไม่ หรือผู้ใช้ดังกล่าวมีอยู่ในตาราง「mysql.user」หรือไม่

ข้อผิดพลาดที่เกี่ยวกับรหัสผ่าน

หากเกิดความไม่ตรงกันของรหัสผ่านหรือข้อผิดพลาดการตรวจสอบ สามารถแก้ไขได้โดยตั้งค่ารหัสผ่านใหม่อีกครั้ง ใช้คำสั่งต่อไปนี้เพื่อรีเซ็ตรหัสผ่าน
ALTER USER 'ชื่อผู้ใช้'@'ชื่อโฮสต์' IDENTIFIED BY 'รหัสผ่านใหม่';

6. สรุป

ในบทความนี้ เราได้อธิบายวิธีการดึงรายการผู้ใช้ของ MySQL การตรวจสอบข้อมูลรายละเอียด การสร้างและจัดการผู้ใช้ รวมถึงข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข การจัดการผู้ใช้เชื่อมโยงโดยตรงกับการเสริมความปลอดภัยของฐานข้อมูล ดังนั้นจึงสำคัญที่จะตรวจสอบข้อมูลผู้ใช้และสิทธิ์อย่างสม่ำเสมอ เพื่อลดความเสี่ยงจากการเข้าถึงโดยไม่ได้รับอนุญาต ใช้วิธีเหล่านี้เพื่อดำเนินการ MySQL อย่างปลอดภัยและมีประสิทธิภาพ