Cách tạo người dùng và thêm vai trò trong MongoDB
MongoDB Tạo người dùng quản trị viên
Tạo quản trị viên người dùng trong MongoDB được thực hiện bằng cách sử dụng phương thức createUser. Ví dụ sau đây cho thấy cách thực hiện điều này.
db.createUser( { user: "Guru99", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Giải thích mã:
- Bước đầu tiên là chỉ định “tên người dùng” và “mật khẩu” cần được tạo.
- Bước thứ hai là gán vai trò cho người dùng. Vì nó cần phải là quản trị viên cơ sở dữ liệu nên trong trường hợp này chúng tôi đã gán cho vai trò “userAdminAnyDatabase”. Vai trò này cho phép người dùng có đặc quyền quản trị đối với tất cả cơ sở dữ liệu trong MongoDB.
- Tham số db chỉ định cơ sở dữ liệu quản trị là cơ sở dữ liệu Meta đặc biệt bên trong MongoDB chứa thông tin của người dùng này.
Nếu lệnh được thực hiện thành công, kết quả đầu ra sau sẽ được hiển thị:
Đầu ra:
Kết quả đầu ra cho thấy người dùng có tên “Guru99” đã được tạo và người dùng đó có đặc quyền đối với tất cả cơ sở dữ liệu trong MongoDB.
MongoDB Tạo người dùng cho cơ sở dữ liệu đơn
Để tạo người dùng sẽ quản lý một cơ sở dữ liệu, chúng ta có thể sử dụng lệnh tương tự như đã đề cập ở trên nhưng chúng ta chỉ cần sử dụng tùy chọn “userAdmin”.
Ví dụ sau đây cho thấy cách thực hiện điều này;
db.createUser( { user: "Employeeadmin", pwd: "password", roles:[{role: "userAdmin" , db:"Employee"}]})
Giải thích mã:
- Bước đầu tiên là chỉ định “tên người dùng” và “mật khẩu” cần được tạo.
- Bước thứ hai là chỉ định vai trò cho người dùng. Trong trường hợp này, người dùng cần phải là quản trị viên cơ sở dữ liệu nên được gán vai trò “userAdmin”. Vai trò này cho phép người dùng chỉ có đặc quyền quản trị đối với cơ sở dữ liệu được chỉ định trong tùy chọn db.
- Tham số db chỉ định cơ sở dữ liệu mà người dùng sẽ có đặc quyền quản trị.
Nếu lệnh được thực hiện thành công, kết quả đầu ra sau sẽ được hiển thị:
Đầu ra:
Kết quả đầu ra cho thấy người dùng có tên “Employeeadmin” đã được tạo và người dùng đó chỉ có các đặc quyền trên cơ sở dữ liệu “Employee”.
Quản lý người dùng
Trước tiên hãy hiểu vai trò mà bạn cần xác định. Có toàn bộ danh sách vai trò có sẵn trong MongoDB. Ví dụ: có một “vai trò đọc” chỉ cho phép truy cập chỉ đọc vào cơ sở dữ liệu và sau đó có vai trò “đọc ghi” cung cấp quyền truy cập đọc và ghi vào cơ sở dữ liệu, có nghĩa là người dùng có thể đưa ra lệnh chèn, xóa và lệnh cập nhật trên các bộ sưu tập trong cơ sở dữ liệu đó.
db.createUser( { user: "Mohan", pwd: "password", roles:[ { role: "read" , db:"Marketing"}, { role: "readWrite" , db:"Sales"} } ] })
Đoạn mã trên cho thấy một người dùng có tên Mohan đã được tạo và anh ta được giao nhiều vai trò trong nhiều cơ sở dữ liệu. Trong ví dụ trên, anh ta được cấp quyền chỉ đọc đối với cơ sở dữ liệu “Tiếp thị” và quyền đọc Ghi đối với cơ sở dữ liệu “Bán hàng”.