Lỗi xảy ra là tôi đang sử dụng userAdminAnyDatabase
người dùng KHÔNG PHẢI trong quản trị viên cơ sở dữ liệu (xem ghi chú này). Vì vậy, có PHẢI là cơ sở dữ liệu được gọi là quản trị viên trên máy chủ của bạn! Như tài liệu cho biết về các đặc quyền "AnyDatabase":
Nếu bạn thêm bất kỳ vai trò nào trong số này vào tài liệu đặc quyền người dùng bên ngoài cơ sở dữ liệu quản trị, đặc quyền sẽ không có hiệu lực.
Vì vậy, bạn phải:
-
thêm một
userAdminAnyDatabase
tớiadmin
db$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
-
bật xác thực
auth = true setParameter = enableLocalhostAuthBypass=0
-
kết nối bằng
myadmin
mới người dùng vào bất kỳ cơ sở dữ liệu nào bạn muốn và thêm người dùng khác:$ mongo another -u myadmin -p 1234 > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
hoặc
> use another > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })