У меня есть MongoDB с обычной настройкой аутентификации, поэтому вам нужно имя пользователя и пароль для подключения к базе данных (auth=true
в конфигах). Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть несколько сценариев, которым необходимо подключиться к этой базе данных, а затем создать новую, скопировать некоторые данные и позже удалить базу данных в какой-то момент времени. Проблема в том, что пользователь первичной базы данных, похоже, не может создать новую.
Я покопался в их документации, но пока ничего не нашел. Я бы сравнил то, что я ищу, с предоставлением пользователю MySQL возможности create database
и drop database
.
Похоже, понадобится несколько разные прив.
Я не понял, что вам нужно для создания базы данных, но это право может унаследоваться напрямую от readWriteAnyDatabase.
У вас должен быть один "root" пользователь (как в MySQL) и использовать его для управления / операционных задач:
db.addUser({user: "root", pwd: "123456", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin" ]})) // change PW
Этот пользователь сможет делать что угодно:
Обратите внимание, что вам также следует добавить:
setParameter = enableLocalhostAuthBypass=0
чтобы локальные пользователи не были "root" при подключении с localhost.
Обычные пользователи (не администраторы) должны иметь не более следующих привилегий:
"read", "readWrite", "dbAdmin"
Более подробную информацию можно найти здесь: http://docs.mongodb.org/manual/reference/user-privileges/
Изменить: clusterAdmin предназначен для создания БД ...