วิธีสร้างผู้ใช้และเพิ่มบทบาท MongoDB
MongoDB สร้างผู้ใช้ผู้ดูแลระบบ
การสร้างผู้ดูแลระบบผู้ใช้ใน MongoDB ทำได้โดยใช้เมธอด createUser ตัวอย่างต่อไปนี้จะแสดงวิธีดำเนินการนี้
db.createUser( { user: "Guru99", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
คำอธิบายรหัส:
- ขั้นตอนแรกคือการระบุ “ชื่อผู้ใช้” และ “รหัสผ่าน” ที่ต้องการสร้าง
- ขั้นตอนที่สองคือการกำหนดบทบาทให้กับผู้ใช้ เนื่องจากจะต้องเป็นผู้ดูแลฐานข้อมูล ซึ่งในกรณีนี้เราได้มอบหมายบทบาท “userAdminAnyDatabase” แล้ว บทบาทนี้อนุญาตให้ผู้ใช้มีสิทธิ์ผู้ดูแลระบบในฐานข้อมูลทั้งหมด MongoDB.
- พารามิเตอร์ db ระบุฐานข้อมูลผู้ดูแลระบบซึ่งเป็นฐานข้อมูล Meta พิเศษภายใน MongoDB ซึ่งเก็บข้อมูลสำหรับผู้ใช้รายนี้
หากดำเนินการคำสั่งสำเร็จ จะแสดงผลลัพธ์ต่อไปนี้:
Output:
ผลลัพธ์แสดงว่าผู้ใช้ชื่อ “Guru99” ถูกสร้างขึ้น และผู้ใช้รายนั้นมีสิทธิ์เหนือฐานข้อมูลทั้งหมดใน MongoDB.
MongoDB สร้างผู้ใช้สำหรับฐานข้อมูลเดียว
ในการสร้างผู้ใช้ที่จะจัดการฐานข้อมูลเดียว เราสามารถใช้คำสั่งเดียวกับที่กล่าวข้างต้น แต่เราจำเป็นต้องใช้ตัวเลือก “userAdmin” เท่านั้น
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีดำเนินการนี้
db.createUser( { user: "Employeeadmin", pwd: "password", roles:[{role: "userAdmin" , db:"Employee"}]})
คำอธิบายรหัส:
- ขั้นตอนแรกคือการระบุ “ชื่อผู้ใช้” และ “รหัสผ่าน” ที่ต้องการสร้าง
- ขั้นตอนที่สองคือการกำหนดบทบาทให้กับผู้ใช้ ซึ่งในกรณีนี้เนื่องจากจะต้องเป็นผู้ดูแลระบบฐานข้อมูลจึงถูกกำหนดให้กับบทบาท "userAdmin" บทบาทนี้อนุญาตให้ผู้ใช้มีสิทธิ์ผู้ดูแลระบบเฉพาะกับฐานข้อมูลที่ระบุในตัวเลือก db
- พารามิเตอร์ db ระบุฐานข้อมูลที่ผู้ใช้ควรมีสิทธิ์ผู้ดูแลระบบ
หากดำเนินการคำสั่งสำเร็จ จะแสดงผลลัพธ์ต่อไปนี้:
Output:
ผลลัพธ์แสดงว่าผู้ใช้ชื่อ "Employeeadmin" ถูกสร้างขึ้น และผู้ใช้รายนั้นมีสิทธิ์เฉพาะในฐานข้อมูล "Employee" เท่านั้น
การจัดการผู้ใช้
ขั้นแรกให้ทำความเข้าใจบทบาทที่คุณต้องกำหนด มีรายการบทบาททั้งหมดที่มีอยู่ใน MongoDB- ตัวอย่างเช่น มี “บทบาทการอ่าน” ซึ่งอนุญาตให้เข้าถึงฐานข้อมูลแบบอ่านอย่างเดียวเท่านั้น จากนั้นจึงมีบทบาท “อ่านเขียน” ซึ่งให้การเข้าถึงฐานข้อมูลแบบอ่านและเขียน ซึ่งหมายความว่าผู้ใช้สามารถออกการแทรก ลบ และ อัปเดตคำสั่งเกี่ยวกับคอลเลกชันในฐานข้อมูลนั้น
db.createUser( { user: "Mohan", pwd: "password", roles:[ { role: "read" , db:"Marketing"}, { role: "readWrite" , db:"Sales"} } ] })
ข้อมูลโค้ดด้านบนแสดงให้เห็นว่ามีการสร้างผู้ใช้ชื่อ Mohan และเขาได้รับมอบหมายหลายบทบาทในหลายฐานข้อมูล ในตัวอย่างข้างต้น เขาได้รับสิทธิ์อ่านอย่างเดียวในฐานข้อมูล "การตลาด" และสิทธิ์อ่านเขียนในฐานข้อมูล "การขาย"