Tôi đang sử dụng cùng một chuỗi kết nối trên địa phương và sản xuất. Khi chuỗi kết nối là mongodb: // localhost/mydbMongoDB người dùng và mật khẩu mặc định là gì?
Người dùng và mật khẩu là gì? Có an toàn để giữ nó theo cách này không?
Tôi đang sử dụng cùng một chuỗi kết nối trên địa phương và sản xuất. Khi chuỗi kết nối là mongodb: // localhost/mydbMongoDB người dùng và mật khẩu mặc định là gì?
Người dùng và mật khẩu là gì? Có an toàn để giữ nó theo cách này không?
Theo mặc định, mongodb không có quyền kiểm soát truy cập được bật, do đó không có người dùng hoặc mật khẩu mặc định.
Để bật điều khiển truy cập, hãy sử dụng tùy chọn dòng lệnh --auth
hoặc cài đặt tệp cấu hình bảo mật.authorization.
Bạn có thể sử dụng quy trình sau hoặc tham khảo Enabling Auth trong tài liệu MongoDB.
Bắt đầu MongoDB mà không kiểm soát truy cập.
mongod --port 27017 --dbpath /data/db1
Kết nối với cá thể.
mongo --port 27017
Tạo quản trị viên người dùng.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Khởi động lại cá thể MongoDB bằng kiểm soát truy cập.
mongod --auth --port 27017 --dbpath /data/db1
Xác thực là quản trị viên người dùng.
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
Đối với MongoDB sớm hơn so với 2.6, lệnh để thêm một tài khoản root là addUser
(ví dụ)
db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
LoạiError: db.addUser không phải là một hàm không hoạt động –
Đến phiên bản 2.6 bạn có 'db.addUser'. Bắt đầu từ phiên bản 2.6 và trong phiên bản 3.4.x hiện tại, bạn có thể tạo một người dùng với 'db.CreateUser'. –
Bên cạnh đó với những gì @Camilo Silva đã đề cập, nếu bạn muốn từ bỏ truy cập miễn phí để tạo cơ sở dữ liệu, đọc, viết cơ sở dữ liệu, v.v. nhưng bạn không muốn tạo vai trò gốc, bạn có thể thay đổi bước thứ ba bằng cách sau:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
}
)
Nếu người dùng được tạo với vai trò userAdminAnyDatabase, thì sẽ không thể tạo bất kỳ cơ sở dữ liệu nào. Do đó phần vai trò phải là: vai trò: [{vai trò: "root", db: "admin"}] – georgeos
Vui lòng liên kết [bài đăng gốc từ MongoDB Manual] (https://docs.mongodb.com/manual/tutorial/enable -authentication /) –