Ngoài những gì @Camilo Silva đã đề cập, nếu bạn muốn cung cấp quyền 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ứ 3 với mục sau:
Nội dung chính Show
Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3. Sau khi tạo người dùng bổ sung, thoát use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7 Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3. Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3. Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3. Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3. use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
}
)
Nếu bạn đã tạo người dùng, bạn có thể cập nhật người dùng như sau:
Đăng nhập đầu tiên:
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
Các quyền thêm:
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
Người dùng xác thực với MongoDB bằng cơ chế xác thực bên ngoài, chẳng hạn như Kerberos, phải được tạo trong cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
2, cho phép db.foo .insertOne ( { x : 1 , y : 1 } )
3 hoặc db.foo .insertOne ( { x : 1 , y : 1 } )
4 để tham khảo nguồn bên ngoài để xác thực. → MongoDB Manual
Để sử dụng các phiên khách hàng và đảm bảo tính nhất quán nhân quả với người dùng xác thực
db.foo .insertOne ( { x : 1 , y : 1 } )
2 (người dùng Kerberos, LDAP hoặc X.509), tên người dùng không thể lớn hơn 10k byte.Đối với xác thực Kerberos, bạn phải thêm Hiệu trưởng Kerberos làm tên người dùng. Bạn không cần chỉ định mật khẩu. Hoạt động sau đây bổ sung hiệu trưởng Kerberos db.foo .insertOne ( { x : 1 , y : 1 } )
6 với quyền truy cập chỉ đọc vào cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
7: Người dùng xác thực với MongoDB bằng cơ chế xác thực bên ngoài, chẳng hạn như LDAP, phải được tạo trong cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
2, cho phép db.foo .insertOne ( { x : 1 , y : 1 } )
3 hoặc db.foo .insertOne ( { x : 1 , y : 1 } )
4 tham khảo ý kiến của một nguồn bên ngoài để xác thực. Để xác thực LDAP, bạn phải chỉ định tên người dùng. Bạn không cần chỉ định mật khẩu, vì điều đó được xử lý bởi dịch vụ LDAP. Hoạt động sau đây thêm người dùng use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3 có quyền truy cập chỉ đọc vào cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
7: Người dùng xác thực với MongoDB bằng cơ chế xác thực bên ngoài, chẳng hạn như xác thực chứng chỉ máy khách X.509, phải được tạo trong cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
2, cho phép db.foo .insertOne ( { x : 1 , y : 1 } )
3 hoặc db.foo .insertOne ( { x : 1 , y : 1 } )
4 tham khảo nguồn bên ngoài để xác thực. Đối với xác thực chứng chỉ máy khách X.509, bạn phải thêm giá trị của use reporting db.createUser ( { user : "reportsUser" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "read" , db : "reporting" }, { role : "read" , db : "products" }, { role : "read" , db : "sales" }, { role : "readWrite" , db : "accounts" } ] } )
8 từ chứng chỉ máy khách làm người dùng MongoDB. Mỗi chứng chỉ máy khách X.509 duy nhất tương ứng với một người dùng MongoDB duy nhất. Bạn không cần chỉ định mật khẩu. Hoạt động sau đây bổ sung người dùng chứng chỉ máy khách use reporting db.createUser ( { user : "reportsUser" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "read" , db : "reporting" }, { role : "read" , db : "products" }, { role : "read" , db : "sales" }, { role : "readWrite" , db : "accounts" } ] } )
9 có quyền truy cập chỉ đọc vào cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
7. Để quản lý người dùng, gán vai trò và tạo vai trò tùy chỉnh, xem Quản lý người dùng và vai trò. Tài liệu về nhà → Hướng dẫn sử dụng MongoDB Trên trang này Điều kiện tiên quyết Thủ tục
Kết nối và xác thực
Để có thể tạo người dùng, bạn cần phải:
Đối với việc tạo người dùng thường xuyên, bạn phải có các quyền sau:
Để tạo người dùng mới trong cơ sở dữ liệu, bạn phải có
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
1Action trên tài nguyên cơ sở dữ liệu đó.Để cấp vai trò cho người dùng, bạn phải có hành động
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
2 trên cơ sở dữ liệu của vai trò.Vai trò tích hợp
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
3 và mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
4 cung cấp các hành động mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
1 và mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
2 trên các tài nguyên tương ứng của chúng.
Ghi chú
Quy trình sau sử dụng xác thực Scram. Để biết thêm thông tin về các cơ chế xác thực khác, hãy xem các ví dụ bổ sung.Additional Examples.
Ghi chú
Quy trình sau sử dụng xác thực Scram. Để biết thêm thông tin về các cơ chế xác thực khác, hãy xem các ví dụ bổ sung.Additional Examples.
Bước sau sử dụng xác thực Scram. Để biết thêm thông tin về các cơ chế xác thực khác, hãy xem các ví dụ bổ sung.
Sau khi xác thực làm quản trị viên người dùng, hãy sử dụng phương thức
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
7 để tạo thêm người dùng. Bạn có thể gán bất kỳ vai trò tích hợp hoặc vai trò do người dùng xác định cho người dùng.
use test db.createUser ( { user : "myTester" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "readWrite" , db : "test" }, { role : "read" , db : "reporting" } ] } )
Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3.
Mẹo
Phương thức
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 nhắc bạn nhập mật khẩu. Bạn cũng có thể chỉ định mật khẩu của mình trực tiếp dưới dạng chuỗi. Chúng tôi khuyên bạn nên sử dụng phương thức use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 để tránh hiển thị mật khẩu trên màn hình của bạn và có khả năng rò rỉ mật khẩu vào lịch sử shell của bạn.Cơ sở dữ liệu nơi bạn tạo người dùng (trong ví dụ này,
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9) là cơ sở dữ liệu xác thực của người dùng. Mặc dù người dùng xác thực vào cơ sở dữ liệu này, người dùng có thể có vai trò trong các cơ sở dữ liệu khác. Cơ sở dữ liệu xác thực của người dùng không giới hạn các đặc quyền của người dùng.use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7
Sau khi tạo người dùng bổ sung, thoát use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7
Quan trọnguse admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7 session. Authenticating as a different user means the session has the privileges of both authenticated users. To switch between users exit and relaunch use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7
Không thể chuyển đổi giữa người dùng trong cùng một phiên
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7. Xác thực như một người dùng khác có nghĩa là phiên có đặc quyền của cả hai người dùng được xác thực. Để chuyển đổi giữa người dùng thoát và khởi chạy lại use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7 as use test db.createUser ( { user : "myTester" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "readWrite" , db : "test" }, { role : "read" , db : "reporting" } ] } )
1, reconnect as myTester
:Sau khi thoát
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7 dưới dạng use test db.createUser ( { user : "myTester" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "readWrite" , db : "test" }, { role : "read" , db : "reporting" } ] } )
1, kết nối lại là myTester
:
db.foo .insertOne ( { x : 1 , y : 1 } )
Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3.
Mẹo Phương thức
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 nhắc bạn nhập mật khẩu. Bạn cũng có thể chỉ định mật khẩu của mình trực tiếp dưới dạng chuỗi. Chúng tôi khuyên bạn nên sử dụng phương thức use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 để tránh hiển thị mật khẩu trên màn hình của bạn và có khả năng rò rỉ mật khẩu vào lịch sử shell của bạn.
Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3.
Mẹo
use reporting db.createUser ( { user : "reportsUser" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "read" , db : "reporting" }, { role : "read" , db : "products" }, { role : "read" , db : "sales" }, { role : "readWrite" , db : "accounts" } ] } )
Phương thức
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 nhắc bạn nhập mật khẩu. Bạn cũng có thể chỉ định mật khẩu của mình trực tiếp dưới dạng chuỗi. Chúng tôi khuyên bạn nên sử dụng phương thức use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 để tránh hiển thị mật khẩu trên màn hình của bạn và có khả năng rò rỉ mật khẩu vào lịch sử shell của bạn.Cơ sở dữ liệu nơi bạn tạo người dùng (trong ví dụ này,
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9) là cơ sở dữ liệu xác thực của người dùng. Mặc dù người dùng xác thực vào cơ sở dữ liệu này, người dùng có thể có vai trò trong các cơ sở dữ liệu khác. Cơ sở dữ liệu xác thực của người dùng không giới hạn các đặc quyền của người dùng.Sau khi tạo người dùng bổ sung, thoát
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7Quan trọng
use $external db.createUser ( { user : "" , roles : [ { role : "read" , db : "records" } ] } )
Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3.
Mẹo Phương thức
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 nhắc bạn nhập mật khẩu. Bạn cũng có thể chỉ định mật khẩu của mình trực tiếp dưới dạng chuỗi. Chúng tôi khuyên bạn nên sử dụng phương thức use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 để tránh hiển thị mật khẩu trên màn hình của bạn và có khả năng rò rỉ mật khẩu vào lịch sử shell của bạn.Cơ sở dữ liệu nơi bạn tạo người dùng (trong ví dụ này,
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9) là cơ sở dữ liệu xác thực của người dùng. Mặc dù người dùng xác thực vào cơ sở dữ liệu này, người dùng có thể có vai trò trong các cơ sở dữ liệu khác. Cơ sở dữ liệu xác thực của người dùng không giới hạn các đặc quyền của người dùng.Sau khi tạo người dùng bổ sung, thoát
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7Quan trọng
use $external db.createUser ( { user : "reporting" , roles : [ { role : "read" , db : "records" } ] } )
Hoạt động sau đây thêm người dùng myTester vào cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9, người có vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
0 trong cơ sở dữ liệu mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9 cũng như vai trò use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
2 trong cơ sở dữ liệu use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
3.
Mẹo Phương thức
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 nhắc bạn nhập mật khẩu. Bạn cũng có thể chỉ định mật khẩu của mình trực tiếp dưới dạng chuỗi. Chúng tôi khuyên bạn nên sử dụng phương thức use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
4 để tránh hiển thị mật khẩu trên màn hình của bạn và có khả năng rò rỉ mật khẩu vào lịch sử shell của bạn.Cơ sở dữ liệu nơi bạn tạo người dùng (trong ví dụ này,
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
9) là cơ sở dữ liệu xác thực của người dùng. Mặc dù người dùng xác thực vào cơ sở dữ liệu này, người dùng có thể có vai trò trong các cơ sở dữ liệu khác. Cơ sở dữ liệu xác thực của người dùng không giới hạn các đặc quyền của người dùng.Sau khi tạo người dùng bổ sung, thoát
use admin
db.grantRolesToUser(
"myUserAdmin",
[ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
)
7Hoạt động sau đây bổ sung người dùng chứng chỉ máy khách
use reporting db.createUser ( { user : "reportsUser" , pwd : passwordPrompt (), // or cleartext password roles : [ { role : "read" , db : "reporting" }, { role : "read" , db : "products" }, { role : "read" , db : "sales" }, { role : "readWrite" , db : "accounts" } ] } )
9 có quyền truy cập chỉ đọc vào cơ sở dữ liệu db.foo .insertOne ( { x : 1 , y : 1 } )
7.
use $external db.createUser ( { user : "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry" , roles : [ { role : "read" , db : "records" } ] } )
Mẹo
Xem thêm: Để quản lý người dùng, gán vai trò và tạo vai trò tùy chỉnh, xem Quản lý người dùng và vai trò.