MongoDB - показать базы данных и показать журнал без роли clusterAdmin

Есть ли способ дать пользователю в реплике MongoDB возможность использовать "show dbs" и "show log", не предоставляя им роль clusterAdmin?

Различные пользовательские интерфейсы (например, robomongo) показывают список баз данных при подключении. Без возможности "показать базы данных" базы данных не отображаются.

Спасибо!

1 ответ

Вопрос, очевидно, был написан с учетом более старой версии, но, по крайней мере, с версии 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 опрашивает каждую базу данных на предмет ее размера, который использует блокировки. Поэтому в зависимости от того, как ваши экземпляры MongoDB переносят такие блокировки, вы можете разумно предоставить эту кластерную привилегию пользователям с низкими привилегиями.

Другие вопросы по тегам