วิธีแสดงรายชื่อผู้ใช้ MySQL (โฮสต์และชื่อผู้ใช้) + ตรวจสอบสิทธิ์และการยืนยันตัวตน

目次

1. ความสำคัญของการจัดการผู้ใช้ MySQL

1.1 การจัดการผู้ใช้ MySQL คืออะไร?

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

1.2 สถานการณ์ที่ต้องตรวจสอบรายการผู้ใช้

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

2. ที่เก็บข้อมูลผู้ใช้ MySQL

2.1 ภาพรวมของตาราง mysql.user

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

2.2 สิทธิ์ที่จำเป็นสำหรับการเข้าถึงตาราง mysql.user

การเข้าถึงตาราง mysql.user ต้องใช้สิทธิ์พิเศษ โดยปกติเฉพาะผู้ใช้ root หรือผู้ใช้ที่มีสิทธิ์ SELECT บนตารางนี้เท่านั้นที่สามารถเข้าถึงได้ ข้อจำกัดนี้ป้องกันไม่ให้ผู้ใช้ทั่วไปดูข้อมูลของผู้ใช้อื่นและช่วยรักษาความปลอดภัยของฐานข้อมูล

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

3.1 คำสั่ง SQL พื้นฐานสำหรับแสดงรายการผู้ใช้

เพื่อดึงรายการผู้ใช้ คุณสามารถรันคำสั่ง SQL ที่เลือกคอลัมน์ Host และ User จากตาราง mysql.user รันคำสั่งดังนี้:

SELECT Host, User FROM mysql.user;

คำสั่ง SQL นี้ช่วยให้คุณตรวจสอบผู้ใช้ทั้งหมดที่มีอยู่ในฐานข้อมูลและโฮสต์ที่พวกเขาอนุญาตให้เชื่อมต่อจาก

3.2 คำอธิบายผลลัพธ์

ผลลัพธ์ของคำสั่ง SQL จะแสดงรายการคู่ของผู้ใช้และโฮสต์ คอลัมน์ Host แสดงโฮสต์ที่ผู้ใช้สามารถเข้าถึง MySQL ได้ และคอลัมน์ User แสดงชื่อผู้ใช้ เช่น หากแสดงเป็น localhost ผู้ใช้นั้นสามารถเชื่อมต่อได้เฉพาะจากเครื่องในเครื่องเท่านั้น

4. การตรวจสอบรายละเอียดผู้ใช้

4.1 การดึงข้อมูลรหัสผ่าน

เพื่อตรวจสอบข้อมูลผู้ใช้โดยละเอียด รันคำสั่ง SQL ที่รวมคอลัมน์ Password จากตาราง mysql.user:

SELECT Host, User, Password FROM mysql.user;

คำสั่ง SQL นี้ดึงข้อมูลที่รวมรหัสผ่านที่เข้ารหัสของผู้ใช้

4.2 ทำไมรหัสผ่านที่เข้ารหัสจึงสำคัญ

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

5. การตรวจสอบข้อมูลการรับรองตัวตนของผู้ใช้

5.1 ตรวจสอบผู้ใช้ที่เชื่อมต่อในปัจจุบัน

เพื่อตรวจสอบผู้ใช้ที่เชื่อมต่อใน MySQL ในปัจจุบัน ให้ใช้ฟังก์ชัน user() และ current_user() ฟังก์ชันเหล่านี้จะคืนชื่อผู้ใช้ที่ใช้ในการเชื่อมต่อและชื่อผู้ใช้ที่รับรองตัวตนจริงตามลำดับ

SELECT user(), current_user();

ในกรณีส่วนใหญ่ ฟังก์ชันทั้งสองจะคืนค่าที่เหมือนกัน แต่พวกเขาอาจแตกต่างกันขึ้นอยู่กับผู้ใช้ที่ไม่ระบุชื่อหรือการตั้งค่าการรับรองตัวตนเฉพาะ

5.2 ทำไมชื่อผู้ใช้ที่รับรองตัวตนและโฮสต์จึงสำคัญ

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

6. การตรวจสอบการตั้งค่าการสร้างผู้ใช้

6.1 วิธีใช้คำสั่ง SHOW CREATE USER

เพื่อตรวจสอบว่าผู้ใช้เฉพาะเจาะจงถูกสร้างขึ้นอย่างไร ให้ใช้คำสั่ง SHOW CREATE USER คำสั่งนี้จะแสดงประโยค SQL ที่ใช้ในการสร้างผู้ใช้ที่ระบุ

SHOW CREATE USER 'username'@'hostname';

ด้วยคำสั่งนี้ คุณสามารถตรวจสอบการตั้งค่าละเอียดในขณะสร้าง เช่น วิธีการรับรองตัวตนและการกำหนดรหัสผ่าน

6.2 ตัวอย่าง: ตรวจสอบการตั้งค่าการสร้างผู้ใช้

ตัวอย่างเช่น หากคุณต้องการตรวจสอบการตั้งค่าการสร้างสำหรับผู้ใช้ชื่อ tanaka@localhost ให้รันคำสั่งต่อไปนี้:

SHOW CREATE USER 'tanaka'@'localhost';

จะแสดงรายละเอียด เช่น ปลั๊กอินรับรองตัวตนที่ผู้ใช้กำลังใช้ การกำหนดวันหมดอายุรหัสผ่าน และข้อกำหนดด้านความปลอดภัยที่นำไปใช้

7. การตรวจสอบสิทธิ์ผู้ใช้

7.1 ตรวจสอบสิทธิ์ผู้ใช้ด้วยคำสั่ง SHOW GRANTS

เพื่อตรวจสอบว่าสิทธิ์ใดถูกกำหนดให้กับผู้ใช้ที่คุณสร้าง ให้ใช้คำสั่ง SHOW GRANTS คำสั่งนี้จะแสดงสิทธิ์ทั้งหมดที่มอบให้ผู้ใช้ที่ระบุ

SHOW GRANTS FOR 'username'@'hostname';

เมื่อคุณรันคำสั่งนี้ รายการสิทธิ์ที่มอบให้ผู้ใช้จะถูกแสดง

7.2 ทำไมการจัดการสิทธิ์จึงสำคัญ (แนวปฏิบัติที่ดีที่สุด)

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

8. สรุป

8.1 ประเด็นสำคัญของการจัดการผู้ใช้ MySQL

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

8.2 ขั้นตอนถัดไปสำหรับการจัดการผู้ใช้

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

9. อ้างอิงและทรัพยากร