1
有沒有一種方法可以讓用戶在MongoDB副本集上使用'show dbs'和'show log'而不給他們clusterAdmin角色?MongoDB - 顯示dbs和顯示日誌沒有clusterAdmin角色
當您連接時,各種用戶界面(例如robomongo)會顯示數據庫列表。沒有「顯示數據庫」的能力,沒有列出數據庫。
謝謝!
有沒有一種方法可以讓用戶在MongoDB副本集上使用'show dbs'和'show log'而不給他們clusterAdmin角色?MongoDB - 顯示dbs和顯示日誌沒有clusterAdmin角色
當您連接時,各種用戶界面(例如robomongo)會顯示數據庫列表。沒有「顯示數據庫」的能力,沒有列出數據庫。
謝謝!
這個問題顯然是用舊版本編寫的,但至少3.2.9這是可能的。
命令show dbs
是命令listDatabases
的包裝,它是可授權的。所以首先創建一個只有後者的角色。
db.runCommand({createRole:"justListDatabases",privileges:[{resource:{cluster:true},
actions:["listDatabases"]}],roles:[]})
然後將其授予給用戶。
db.grantRolesToUser("app_RO_user",["justListDatabases"])
注意的是show dbs
詢問它的大小,which uses locks每個數據庫。因此,根據您的MongoDB實例如何容忍此類鎖,您可能需要明智地將此羣集權限授予低權限用戶。
你可以給他們不同的權限,如此評論中所述https://jira.mongodb.org/browse/SERVER-11234?focusedCommentId=442260&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel# comment-442260 –
除非我誤解了您引用的帖子,否則他們會將clusterAdmin角色添加到「admin」數據庫中的用戶(通過userSource條目或通過完整用戶)。我想避免授予完整的clusterAdmin角色,只是給予'show dbs'和'show log'的能力。 – caseym
實際上,建議使用http://docs.mongodb.org/manual/reference/privilege-documents/#admin.system.users.otherDBRoles而不是clusterAdmin –