การบริหาร MySQL: วิธีสร้างผู้ใช้และกำหนดสิทธิ์ของเขา

สารบัญ:

การบริหาร MySQL: วิธีสร้างผู้ใช้และกำหนดสิทธิ์ของเขา
การบริหาร MySQL: วิธีสร้างผู้ใช้และกำหนดสิทธิ์ของเขา
Anonim

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

mysql สร้างผู้ใช้
mysql สร้างผู้ใช้

หากคุณไม่รู้ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง การเข้าถึงฐานข้อมูลผ่าน MySQL นั้นยากมาก

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

ติดตั้งเซิร์ฟเวอร์ MySQL และรูทผู้ใช้

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

  • สร้างและจัดการผู้ใช้ใหม่;
  • สร้างและจัดการฐานข้อมูล
mysql สร้างผู้ใช้และให้สิทธิ์กับฐานข้อมูล
mysql สร้างผู้ใช้และให้สิทธิ์กับฐานข้อมูล

โดยพื้นฐานแล้วผู้ใช้ที่ "ไม่มีรหัสผ่าน" จะมีอยู่ใน MySQL แต่นี่เป็นสิ่งที่ยอมรับไม่ได้

ฝึกทั่วไป:

  • เซิร์ฟเวอร์ที่ติดตั้งบนคอมพิวเตอร์ของตัวเอง ซึ่งสามารถติดตั้งโฮสต์ได้ (ตัวเลือกในเครื่อง);
  • เซิร์ฟเวอร์อยู่ในโฮสต์สาธารณะบนอินเทอร์เน็ต

ในกรณีแรก เป็นไปได้ที่จะทำงานกับเซิร์ฟเวอร์จากบรรทัดคำสั่งและใช้ phpMyAdmin ในกรณีที่สอง เฉพาะ phpMyAdmin หรือเครื่องมือที่คล้ายกัน แต่สามารถเข้าถึงบรรทัดคำสั่งผ่านการเข้าถึง SSH ระยะไกล

เครื่องมือดูแลระบบเอง

ความรู้สึกเป็นเครือญาติกับตระกูล Unixoid และกับอดีตจากเซิร์ฟเวอร์ Apache เป็นจุดเด่นของ MySQL: create user เป็นบรรทัดคำสั่งที่มีไวยากรณ์แปลก ๆ สำหรับมืออาชีพที่ทำงานกับ Linux และระบบที่คล้ายคลึงกัน สิ่งนี้คุ้นเคยพอๆ กับที่ดูไม่เป็นธรรมชาติในสายตาผู้ใช้ Windows ที่ไม่เคย “เข้าสู่ชีวิตจริง”

การสร้างผู้ใช้เริ่มต้นด้วยการเริ่มต้นบรรทัดคำสั่งของเซิร์ฟเวอร์ ในสภาพแวดล้อม Windows ทำได้ดังนี้

mysql สร้างผู้ใช้ด้วยสิทธิ์ทั้งหมด
mysql สร้างผู้ใช้ด้วยสิทธิ์ทั้งหมด

ขั้นแรก (1) คุณต้องเรียกใช้บรรทัดคำสั่งในฐานะผู้ดูแลระบบ จากนั้นไปที่โฟลเดอร์ที่ MySQL ตั้งอยู่ (2) จากนั้นเริ่มเซิร์ฟเวอร์เอง (3):

mysql -u… -p

ที่นี่ "-u…" และ "-p" คือคีย์ที่ชี้ไปที่ชื่อ "…"=รูท (หรือชื่ออื่น) และรหัสผ่าน โดยหลักการแล้ว ผู้ใช้อาจไม่ใช่รูท แต่มีผู้ใช้ที่มีสิทธิ์ "รูท" (ผู้ดูแลระบบ)

สำคัญ: จริงๆ แล้วเซิร์ฟเวอร์ทำงานอยู่เสมอ ที่นี่ mysql -u… -p คือคำสั่งในการเข้าถึงเซิร์ฟเวอร์ ไม่ใช่เริ่ม

ในสภาพแวดล้อม Linux และระบบที่คล้ายกัน คำสั่งดังกล่าวเป็นการกระทำ "ดั้งเดิม" และตามกฎแล้ว ถูกกำหนดโดยเพียงแค่เริ่มต้น mysqld ในตำแหน่งที่ถูกต้อง (ในเส้นทางที่ถูกต้อง) สิ่งนี้ควรตรวจสอบด้วย ผู้ดูแลระบบ โดยปกติจะมีชื่ออื่นที่นี่: ไม่ใช่ mysql แต่เป็น mysqld นอกจากนี้ การดำเนินการนี้อาจไม่พร้อมใช้งานสำหรับผู้ใช้ทุกคน (ของระบบปฏิบัติการ ไม่ใช่ของเซิร์ฟเวอร์ MySQL) ต่างจาก Windows ใน Linuxoids ระเบียบและความปลอดภัยเป็นข้อกำหนดตามธรรมชาติและไม่สามารถต่อรองได้ ซึ่งได้รับการปฏิบัติอย่างมีอารยะเสมอ

ไม่ว่าในกรณีใด เมื่อ mysql เริ่มต้นขึ้น มันจะประกาศสิ่งนี้ด้วยข้อความแจ้ง (4):

mysql>

และจะสามารถทำงานกับทั้งผู้ใช้และฐานข้อมูล

หมายเหตุ. เมื่อติดตั้งในสภาพแวดล้อม Windows ทุกอย่าง: Apache, MySQL, PHP, phpMyAdmin สามารถตั้งค่าเป็นพาธเริ่มต้นได้ แต่ขอแนะนำให้ใช้ตำแหน่งที่กะทัดรัดและใกล้กว่าสำหรับเครื่องมือสำคัญเหล่านี้:

  • c:\SCiA\Apache;
  • c:\SCiA\PHP;
  • c:\SCiA\MySQL;
  • c:\SCiB\localhost\www\phpMyAdmin;
  • c:\SCiB\site1\www;
  • c:\SCiB\site2\www;
  • c:\SCiB\siteN\www\.

ตรรกะนี้ไม่เพียงทำให้การดูแลระบบง่ายขึ้น แต่ยังขยายความสามารถของนักพัฒนาในการย้ายไปมาระหว่างเวอร์ชันของผลิตภัณฑ์และจัดการฟังก์ชันการทำงานด้วย

ทำงานบนบรรทัดคำสั่ง MySQL

เมื่อเซิร์ฟเวอร์ตอบกลับและระบุบรรทัดคำสั่ง ผู้ใช้จะสามารถสร้างและกำหนดสิทธิ์อนุญาตได้

mysql สร้างผู้ใช้สำหรับโฮสต์ใด ๆ
mysql สร้างผู้ใช้สำหรับโฮสต์ใด ๆ

ในตัวอย่างนี้ คำสั่ง create user ได้สร้างผู้ใช้ Petrov ด้วยรหัสผ่าน 123DFG หากเกิดข้อผิดพลาดขณะป้อนคำสั่ง เซิร์ฟเวอร์เสนอให้แก้ไข แต่จะดีกว่าที่จะไม่ทำผิดพลาดเมื่อทำงานบนบรรทัดคำสั่ง!

คำสั่งต่อไปนี้ให้สิทธิ์ทั้งหมดให้สิทธิ์ทุกอย่าง คำสั่ง flush สามารถละเว้นได้ แต่มัน 'แสดง' บัฟเฟอร์ของคำสั่ง นั่นคือจะแก้ไขการทำงาน

MySQL: สร้างผู้ใช้และให้สิทธิ์ในฐานข้อมูล

คำสั่งที่ใช้ในตัวอย่าง:

ให้สิทธิ์ทั้งหมดบน. ถึง 'Petrov'@'localhost';

ให้สิทธิ์ผู้ใช้ Petrov เข้าถึงฐานข้อมูลทั้งหมด (ดอกจันแรก) กับตารางทั้งหมด (ดอกจันที่สอง)

mysql สร้างผู้ใช้ด้วยสิทธิ์ทั้งหมด
mysql สร้างผู้ใช้ด้วยสิทธิ์ทั้งหมด

ตามกฎของ MySQL การสร้างผู้ใช้คือ:

GRANT [ประเภทสิทธิพิเศษ] บน [ชื่อฐานข้อมูล].[ชื่อตาราง] ถึง '[ผู้ใช้]'@'localhost';

อนุญาตสิทธิ์ดังต่อไปนี้:

  • ALL PRIVILEGES - all rights.
  • CREATE - สิทธิ์สร้างตาราง/ฐานข้อมูลใหม่
  • DROP - สิทธิ์ในการวางตาราง/ฐานข้อมูล
  • DELETE - สิทธิ์ในการลบข้อมูลในตาราง
  • INSERT - สิทธิ์ในการเขียนข้อมูลลงตาราง
  • SELECT - สิทธิ์ในการอ่านข้อมูลจากตาราง
  • UPDATE - สิทธิ์ในการอัปเดตข้อมูลในตาราง
  • GRANT OPTION - สิทธิ์ในการทำงานกับสิทธิพิเศษของผู้ใช้รายอื่น

จากมุมมองที่ใช้งานได้จริง ใน MySQL "สร้างผู้ใช้" หมายถึงสามตัวเลือกสำหรับสิทธิ์:

  • สิทธิ์ในฐานข้อมูลและผู้ใช้ทั้งหมด;
  • อ่านเขียน
  • อ่านอย่างเดียว

ตัวเลือกอื่นๆ สำหรับการให้สิทธิ์นั้นแทบไม่มีความจำเป็น ในสภาพแวดล้อม Linux มีเหตุผลมากขึ้นสำหรับเสรีภาพ "ทางกฎหมาย" (และความจำเป็น) แต่มีโอกาสมากกว่าใน Windows

การดำเนินการย้อนกลับของ MySQL "สร้างผู้ใช้" ลดลง

วางผู้ใช้ 'Petrov'@'localhost';

หลังจากดำเนินการคำสั่งนี้ Petrov จะไม่เป็นผู้ใช้อีกต่อไปและสิทธิ์ของเขาจะหายไป หากต้องการเปลี่ยนสิทธิ์ให้ใช้คำสั่ง:

REVOKE [สิทธิพิเศษ] บน [DB].[Table] ถึง '[user]'@'localhost';

การดำเนินการตามปกติใน MySQL คือการสร้างผู้ใช้หรือลบผู้ใช้นั้น แต่การเปลี่ยนแปลงสิทธิ์ก็เป็นการดำเนินการที่ถูกต้องเช่นกัน (ไม่ค่อยมีการร้องขอ)

ใช้ phpMyAdmin

มีการใช้งานเครื่องมือที่ยอดเยี่ยมนี้มากมาย ขึ้นอยู่กับเวอร์ชันของ Apache, PHP และ MySQL ที่ใช้ มักใช้เวลานานในการค้นหาเวอร์ชันที่ถูกต้องของผลิตภัณฑ์นี้ แต่เมื่อติดตั้ง phpMyAdmin สำเร็จแล้ว ผู้ใช้จะมีคุณสมบัติที่สะดวกมากมายและความสะดวกสบายอินเทอร์เฟซ

mysql สร้างผู้ใช้สำหรับโฮสต์ใด ๆ
mysql สร้างผู้ใช้สำหรับโฮสต์ใด ๆ

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

phpMyAdmin ไม่ได้เป็นเพียงเครื่องมือเดียวที่มีอินเทอร์เฟซที่สะดวกสบาย ใช้งานง่าย และเต็มไปด้วยฟีเจอร์ แต่เป็นเครื่องมือยอดนิยมสำหรับการจัดการเซิร์ฟเวอร์ MySQL

เกี่ยวกับบรรทัดคำสั่งและความปลอดภัย

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

mysql สร้างผู้ใช้สำหรับโฮสต์ใด ๆ
mysql สร้างผู้ใช้สำหรับโฮสต์ใด ๆ

เวอร์ชันซอฟต์แวร์มีการพัฒนาอย่างรวดเร็วจนนักพัฒนาไม่มีเวลารวมคุณลักษณะต่างๆ เช่น PHP และ MySQL, MySQL และ phpMyAdmin หากมีสิ่งใดเกิดขึ้น บรรทัดคำสั่งจะบันทึกวันนั้นเสมอ

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

แนะนำ: