Mặc dù vậy, các bạn có thể bắt đầu sử dụng máy chủ MongoDB mà không cần phải đăng nhập với bất kỳ người dùng nào mà mình đã làm trong bài viết Cài đặt MongoDB trên macOS. Nhưng trong một số trường hợp như môi trường sản xuất hết hạn, việc thao tác với máy chủ MongoDB mà người dùng sử dụng sẽ tốt hơn rất nhiều. Khi đó, các bạn cần khởi động máy chủ MongoDB với tham số “–auth” và sử dụng người dùng để đăng nhập vào máy chủ MongoDB này. Trong bài viết này, mình sẽ hướng dẫn các bạn cách tạo mới và cấp quyền truy cập cho người dùng MongoDB để các bạn sử dụng nhé.
Đầu tiên, các bạn hãy khởi động máy chủ MongoDB như bình thường, của mình như sau
Java1
. / mongod -- dbpath=/Users/Khanh/MongoDB/data/db
Sau đó, sử dụng tệp mongo của MongoDB để đăng nhập vào máy chủ này như sau
Java1
. / mongo
Để tạo mới một người dùng MongoDB, chúng ta cần chọn cơ sở dữ liệu mà người dùng này sẽ sử dụng trước. Ví dụ ở đây mình chọn quản trị viên cơ sở dữ liệu của MongoDB như sau
Sau đó, chúng ta sẽ sử dụng phương thức createUser[] của MongoDB để thêm vào cơ sở dữ liệu này một người dùng như sau
Java1
2
3
4
5
6
db. tạo Người dùng[{
người dùng. ",
pwd. ",
vai trò. [{ vai trò. ", db. " },
{ vai trò. ", db. " },. . . ]
}]
in which
- là tên người dùng mà bạn muốn thêm
- là mật khẩu của người dùng này
- , là công bố vai trò của người dùng này đối với cơ sở dữ liệu mà nó được chỉ định. Chúng ta có các vai trò mặc định của MongoDB https. // tài liệu. mongodb. com/manual/reference/build-in-roles/ và những role do chúng ta tạo ra
- , . mặc dù chúng tôi đã tuyên bố sử dụng một cơ sở dữ liệu [trong ví dụ của mình là cơ sở dữ liệu “quản trị viên”], nhưng người dùng này cũng có thể được sử dụng trong các cơ sở dữ liệu khác luôn, với vai trò chỉ được xác định trong câu lệnh này của bạn
Trong ví dụ này, mình sẽ thực hiện phương thức createUser[] với nội dung như sau
Java1
2
3
4
5
db. tạo Người dùng[{
người dùng. "khanh",
pwd. "abc123",
vai trò. [{ vai trò. "root", db. "quản trị viên" }]
}]
Như các bạn đã thấy, trong câu lệnh trên, mình đã thêm một người dùng với tên là “Khanh” và mật khẩu là “abc123”. Người dùng này chỉ được sử dụng với quản trị viên cơ sở dữ liệu với vai trò Superuser “root” https. // tài liệu. mongodb. com/manual/reference/build-in-roles/#superuser-roles
Kết quả
OK, bây giờ chúng ta có thể sử dụng người dùng mới này để đăng nhập vào máy chủ MongoDB rồi đó các bạn
Mình sẽ khởi động lại MongoDB với tham số “–auth” như sau
Java1
. / mongod -- auth --dbpath=/Users/Khanh/MongoDB/data/db
Khi đó, nếu mình không đăng nhập vào MongoDB với một người dùng thao tác trên quản trị cơ sở dữ liệu, thì lỗi sau sẽ xuất hiện
Giờ mình sẽ đăng nhập vào máy chủ MongoDB với người dùng mà mình đã tạo ở trên với câu lệnh có cấu trúc như sau