Trong Mongo 2.4.x, nó hỗ trợ một cách mới để create user in admin database, Tôi nghĩ người sử dụng tạo ra với userAdminAnyDatabase vai trò sẽ có thể truy cập vào tất cả các cơ sở dữ liệu khác đúng?Không thể truy cập dbs khác cho người dùng tạo ra như "userAdminAnyDatabase" vai trò
db.addUser({user:"u", pwd:"p", roles:["userAdminAnyDatabase"]})
Tuy nhiên, không thể thực hiện việc này theo tài liệu.
Khi tôi tạo người dùng theo kiểu 2.2.x, Nó hoạt động.
db.addUser("u","p")
Câu hỏi của tôi là tôi đã nhầm lẫn các hoạt động? Nếu tôi muốn tạo một người dùng có thể truy cập tất cả dbs bằng cú pháp 2.4.x, thì cách nào đúng? Bất kỳ tùy chọn khác cần thiết?
Cảm ơn.
Dưới đây là các chi tiết shell mã:
➜ mgo ✗ mongo
MongoDB shell version: 2.4.5
connecting to: test
> use admin
switched to db admin
> db.addUser({user: "u", pwd: "p", roles:["userAdminAnyDatabase"]})
{
"user" : "u",
"pwd" : "d4198ee555320fa5c048da6d6da440d8",
"roles" : [
"userAdminAnyDatabase"
],
"_id" : ObjectId("51dc20f0282f72950455b62e")
}
> db.auth(
Display all 170 possibilities? (y or n)
> db.auth("u","p")
1
> ^C
bye
➜ mgo ✗ mongo admin -u u -p p
MongoDB shell version: 2.4.5
connecting to: admin
> show dbs
Tue Jul 9 22:44:47.959 JavaScript execution failed: listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:L46
> use admin
switched to db admin
> db.addUser("uncle", "peter")
{
"user" : "uncle",
"readOnly" : false,
"pwd" : "e42842e07c4fc324e9724d6aa41f6411",
"_id" : ObjectId("51dc22456642fa58413adffc")
}
> db.auth("uncle", "peter")
1
> ^C
bye
➜ mgo ✗ mongo admin -u uncle -p peter
MongoDB shell version: 2.4.5
connecting to: admin
> show dbs
admi (empty)
admin 0.203125GB
local 0.078125GB
qortex_global 0.203125GB
qortexprod 0.203125GB
test (empty)
>
Xin chào, @Derick, nó hoạt động. nhưng tôi vẫn hy vọng người dùng được tạo không chỉ có thể liệt kê tất cả các dbs khác, mà còn có thể có quyền đọc/ghi. Cần bất kỳ vai trò nào khác? – yeer
Có, để đọc/ghi, bạn cần có vai trò "readWrite". – Derick
cảm ơn, rất hữu ích – yeer