การสร้าง User ใน MongoDB เวอร์ชัน 3.x
MongoDB 3.x ใช้เมธอด db.createUser() พร้อมระบบ Role-Based Access Control (RBAC) ที่แยกสิทธิ์ชัดเจน
รูปแบบคำสั่ง
use admin
db.createUser({
user: "yourUserName",
pwd: "yourPassword",
roles: [
{ role: "yourPermission", db: "yourDatabase" }
]
});
ตัวอย่าง: สร้างผู้ใช้ Robert มีสิทธิ์ readWrite บนฐานข้อมูล sample
> use admin
switched to db admin
> db.createUser(
... {
... user: "Robert",
... pwd: "robert",
... roles: [ { role: "readWrite", db: "sample" } ]
... }
... );
Successfully added user: {
"user" : "Robert",
"roles" : [
{
"role" : "readWrite",
"db" : "sample"
}
]
}
Built-in Roles หลัก
| Role | สิทธิ์ |
|---|---|
read | อ่านข้อมูลในฐานข้อมูลที่ระบุ |
readWrite | อ่าน/เขียนข้อมูลในฐานข้อมูลที่ระบุ |
dbAdmin | งานบริหารจัดการฐานข้อมูล (Index, Stats, เป็นต้น) |
userAdmin | จัดการ User และ Role ในฐานข้อมูลนั้น |
dbOwner | รวม readWrite + dbAdmin + userAdmin |
root | สิทธิ์สูงสุด ทุกฐานข้อมูล (เฉพาะใน admin) |
ข้อสังเกตสำคัญ
- ต้องรัน
use adminก่อนสร้าง User (User จะถูกเก็บในฐานข้อมูล admin) - ฟิลด์
dbใน roles ระบุว่า Role นั้นใช้ได้กับฐานข้อมูลไหน - MongoDB 3.0+ ใช้ SCRAM-SHA-1 เป็นค่าเริ่มต้น (3.6+ ใช้ SCRAM-SHA-256)