Sử dụng update() và $set trên collection hệ thống system.users. Cú pháp:
db.system.users.update(
{"user": "yourOldUserName"},
{$set: {"user": "yourNewUserName"}}
);
Xem danh sách user hiện tại
> use admin; switched to db admin > db.getUsers();
Kết quả (ví dụ):
[
{ "_id": "admin.Chris", "user": "Chris", "db": "admin", "roles": [{ "role": "readWrite", "db": "test" }], "mechanisms": ["SCRAM-SHA-1", "SCRAM-SHA-256"] },
{ "_id": "admin.John", "user": "John", "db": "admin", "roles": [{ "role": "userAdminAnyDatabase", "db": "admin" }], "mechanisms": ["SCRAM-SHA-1", "SCRAM-SHA-256"] },
{ "_id": "admin.Robert", "user": "Robert", "db": "admin", "roles": [{ "role": "readWrite", "db": "sample" }], "mechanisms": ["SCRAM-SHA-1", "SCRAM-SHA-256"] }
]
Đổi tên user từ 'John' thành 'Larry'
> db.system.users.update({"user": "John"}, {$set: {"user": "Larry"}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
Xác thực user mới
> db.getUser('Larry');
Kết quả (lưu ý _id vẫn là admin.John):
{
"_id": "admin.John",
"user": "Larry",
"db": "admin",
"roles": [{ "role": "userAdminAnyDatabase", "db": "admin" }],
"mechanisms": ["SCRAM-SHA-1", "SCRAM-SHA-256"]
}
User cũ không còn tồn tại
> db.getUser('John');
Kết quả: Null
Lưu ý quan trọng: _id của user không thay đổi (vẫn là admin.John). Cách này chỉ thay đổi trường user. MongoDB khuyến nghị dùng dropUser và createUser thay vì sửa trực tiếp system.users.