Bất cứ khi nào bạn thiết lập mongodb, bạn nên tạo người dùng quản trị với vai trò userAdminAnyDatabase và bạn sẽ có thể tạo người dùng này ngay cả khi mongod được bắt đầu bằng --auth hay không. bạn có thể tạo người dùng này bằng lệnh dưới đây.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Sau đó, nếu ủy quyền không được bật, hãy bật nó bằng runnig mongod với cờ --auth hoặc bật ủy quyền trong mongod.conf và khởi động lại máy chủ mongod.
Sau đó đăng nhập vào mongo shell bằng lệnh bên dưới với người dùng quản trị
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Đi tới cơ sở dữ liệu và tạo người dùng có quyền readWrite.
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
Giờ đây, bạn có thể sử dụng người dùng myTester để đọc / ghi trong cơ sở dữ liệu myapplication và bất cứ khi nào bạn tạo cơ sở dữ liệu mới, hãy khởi động trình bao mongo với người dùng myUserAdmin và tạo người dùng mới cho cơ sở dữ liệu mới.
Trong mongodb, bạn cũng có thể tạo một người dùng duy nhất và cấp cho anh ta mọi quyền đối với tất cả cơ sở dữ liệu, nhưng bạn không nên làm như vậy.
Nếu bạn muốn nghiên cứu thêm, bạn có thể kiểm tra liên kết dưới đây. https://docs.mongodb.com/v3.2/tutorial/ kích hoạt xác thực /
Và khi bạn vô tình khóa mongodb, bạn có thể tắt ủy quyền từ tệp mongod.conf và truy cập dữ liệu của mình.