Vai trò trong mongodb

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

Java

1

. / 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

Java

1

. / 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

Java

1

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

Java

1

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

Java

1

. / 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

Chủ Đề