在 mongo compass 中使用 mongosh,我為我的資料庫創建了一個用戶:
use test_db
db.createUser({user:'some_user', pwd: 'some_pass', roles:[]})
現在,當我嘗試為其分配 root 角色時,我找不到角色:root@test_db
db.grantRolesToUser( "some_user",
[
{ role: "root", db: "test_db" }
])
根角色不是內置角色嗎?為什么我不能分配它?目前,當我嘗試運行一個聚合時,我得到MongoServerError: notauthorized on test to execute command { aggregate: ...。這就是為什么我想分配 root 角色來擺脫這個。
uj5u.com熱心網友回復:
角色root在admin資料庫中定義。在資料庫中,test_db此角色不存在 - 除非您手動創建它。
筆記:
除了在admin資料庫中創建的角色外,角色只能包含適用于其資料庫的權限,并且只能從其資料庫中的其他角色繼承。
在admin資料庫中創建的角色可以包括應用于admin資料庫、其他資料庫或集群資源的權限,并且可以從其他資料庫以及資料庫中的角色繼承admin。
實際上,我不知道有什么理由在admin.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/343589.html
