Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

วิธีเปลี่ยนรหัสผ่านผู้ใช้ใน MongoDB ด้วย changeUserPassword()

ใช้เมธอด db.changeUserPassword() ใน database admin เพื่อเปลี่ยนรหัสผ่านของ User ที่มีอยู่แล้ว

รูปแบบคำสั่ง

db.changeUserPassword("username", "newPassword");

ขั้นตอนการเปลี่ยนรหัสผ่าน

1. สลับไป database admin

> use admin
switched to db admin

2. ดูรายชื่อ User ที่มีอยู่

> db.getUsers();
[
    {
        "_id" : "admin.John",
        "user" : "John",
        "db" : "admin",
        "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ],
        "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ]
    }
]

3. เปลี่ยนรหัสผ่าน User "John"

> db.changeUserPassword("John", "123456");

รหัสผ่านถูกเปลี่ยนเป็น "123456" เรียบร้อย

คำสั่งจัดการ User อื่นๆ

ข้อกำหนดสิทธิ์

  • ต้อง Login ด้วย User ที่มี Role userAdminAnyDatabase หรือ root
  • หรือ User ที่มี changePassword privilege บน database นั้น
  • User ธรรมดาสามารถเปลี่ยนรหัสผ่านตัวเองได้ด้วย db.changeUserPassword() (MongoDB 4.2+)

Authentication Mechanisms

  • SCRAM-SHA-1 - Default เดิม
  • SCRAM-SHA-256 - ใหม่กว่า ปลอดภัยกว่า (Default ตั้งแต่ MongoDB 4.0)
  • รองรับ x.509, LDAP, Kerberos (Enterprise)

สรุป

  • ใช้ use admin → db.changeUserPassword("user", "newPass")
  • ต้องมีสิทธิ์ Admin
  • รหัสผ่านใหม่มีผลทันที
  • ควรใช้รหัสผ่านแข็งแกร่ง และ SCRAM-SHA-256
คำสั่งหน้าที่
db.createUser({...})สร้าง User ใหม่
db.dropUser("username")ลบ User
db.updateUser("username", {...})อัปเดต Role/ข้อมูล User
db.auth("username", "password")Login ทดสอบ
db.getUsers()แสดง User ทั้งหมด