我正在嘗試在新的 Ubuntu 機器上對 mongo 資料庫進行授權。我創建了一個角色為 userAdminAnyDatabase 的管理員用戶:
admin> show users
[
{
_id: 'admin.mongoAdmin',
userId: UUID("590a4465-625a-4fa0-af2e-0f2c75777ac5"),
user: 'mongoAdmin',
db: 'admin',
roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
]
但是當我嘗試做任何事情時出現授權錯誤:
admin> use test
switched to db test
test> db.users.find({})
MongoServerError: not authorized on test to execute command { find: "users", filter: {}, lsid: { id: UUID("f3cf2fbc-bbea-4ceb-83a1-b842b5047e74") }, $db: "test" }
我知道我使用了正確的 ID/密碼,因為當我嘗試使用不同的密碼運行 mongo shell 時,它無法以密碼錯誤啟動。
Ubuntu版本為20.04.4(Focal);Mongo 版本是 5.0.8:
% mongod --version
db version v5.0.8
Build Info: {
"version": "5.0.8",
"gitVersion": "c87e1c23421bf79614baf500fda6622bd90f674e",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
uj5u.com熱心網友回復:
角色userAdminAnyDatabase或userAdmin授予用戶管理權限,即您可以運行類似的命令db.createUser(),db.grantRolesToUser()或db.updateUser()
他們不授予讀取或寫入資料庫的非系統集合的權限。
我猜你需要授予dbAdminAnyDatabase、readWriteAnyDatabase或只是root
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/470078.html
上一篇:在Mongo中,如果我正在保存“Prateek”的檔案,那么我不希望在下一次創建操作中即使保存“prateek”或“praTEEK”等
