- MongoDB là gì? Các khái niệm trong MongoDB
- Hướng dẫn cài đặt, cấu hình MongoDB trên Windows 10
- Cài đặt và sử dụng Robo 3T (RoboMongo) trên Windows
- Hướng dẫn cài đặt MongoDB trên Linux (Ubuntu 16.04)
- Hướng dẫn MongoDB – Tạo database trong MongoDB
- Hướng dẫn MongoDB – Xóa, DROP database trong MongoDB
- Tạo bảng, collections trong MongoDB (Tạo bằng dòng lệnh, Robo3t)
- Xóa bảng, collections trong MongoDB (Xóa bằng lệnh/ Robo3T)
- Insert document, bản ghi trong MongoDB (Insert bằng lệnh, Robo3T)
- Truy vấn dữ liệu/document, find(), Select, Where trong MongoDB
- Xóa document, row trong MongoDB (bằng dòng lệnh, Robo3T)
- Update document, dữ liệu trong MongoDB
- Projection trong MongoDB (SELECT field/column trong MongoDB)
- Sắp xếp trong MongoDB(orderBy, sorting() trong MongoDB)
- Ưu nhược điểm của MongoDB, khi nào nên dùng MongoDB
- Xóa cột, field, trường của collections trong MongoDB ($unset)
- Kiểm tra null, check tồn tại trong MongoDB với $exists
- Đổi tên field trong MongoDB với $rename
- Tạo user/roles, phân quyền người dùng trên MongoDB
- Các loại roles, vai trò, quyền trong MongoDB.
- Đăng nhập mongodb với username và password (database mongo)
- Tạo Replica Set trong MongoDB, Ví dụ Replica Set MongoDB
- Replication, Replica Set trong MongoDB là gì?
- Phân trang trong MongoDB (skip(), limit() paging trong MongoDB)
Tạo user/roles, phân quyền người dùng trên MongoDB
Tạo user trong MongoDB
Để tạo user trong MongoDB ta sử dụng method createUser()
db.createUser( { user: "username", pwd: "password", roles: [ { role: "role_name", db: "db_name" } ] } )
Trong đó roles
: sẽ chứa 1 list các role cho user vừa tạo, mỗi role sẽ bao gồm tên database + role tương ứng với database đó.
(Xem lại: Các loại roles, vai trò, quyền trong MongoDB)
Tạo System user
Để tạo system user, ta sẽ tạo user trên database admin, các system user này có thể truy cập, chỉnh sửa các database khác nếu được cấp quyền.
Ví dụ mình tạo user kai/123456
với role cao nhất là root
use admin db.createUser({ user: "kai", pwd: "123456", roles: [ { role: "root", db: "admin" } ] })
Tạo user cho từng database
Ví dụ tạo user sena/123456
với quyền chỉ đọc read
với database demo
use demo db.createUser({ user: "sena", pwd: "123456", roles: [ { role: "read", db: "demo" } ] })
Demo
Để tạo user trên MongoDB, trước hết bạn phải đăng nhập bằng chế độ non-auth.
(Xem lại: Bật, tắt chức năng đăng nhập MongoDB với username, password.)
Ví dụ tạo user kai/123456
với role root
Sau khi thêm được user, ta bật chức năng auth của MongoDB và khởi động lại MongoDB.
(Xem lại: Bật, tắt chức năng đăng nhập MongoDB với username, password.)
Để đăng nhập MongoDB với username password ta có 2 cách:
Cách 1: chỉ rõ username, password và database khi connect:
mongo -u username -p password host:port/database_name
Ví dụ: đăng nhập MongoDB với account (kai/123456) vừa tạo ở trên.
mongo -u kai -p 123456 localhost:27017/admin
Cách 2: sử dụng method db.auth()
Connect bằng lệnh mongo, sau đó dùng lệnh db.auth()
trên database cần xác thực:
Ví dụ:
Sau khi đăng nhập bằng user (kai/123456) bạn có quyền root nên có thể tạo user mới.
Ví dụ mình tạo user sena/123456 với quyền read trên database demo:
Vì user kai/123456 có quyền root nên nó cũng có thể insert dữ liệu cho các database khác, ví dụ mình insert document player {'name':'ronaldo'}
vào database demo:
Bây giờ đăng nhập với user sena/123456
: ta có thể xem (find) tất cả collections, document của database demo nhưng không thể insert dữ liệu vào database demo vì user sena
chỉ có quyền read.
Okay, Done!
References:
https://docs.mongodb.com/manual/reference/method/db.createUser/