Я пытаюсь создать простого пользователя с правами доступа к любой базе данных и могу выполнять любые действия. Когда я пытался выполнить createUser
команду, я получил эту ошибку:
db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog
Проблема выше возникает только тогда, когда я включаю конфигурацию аутентификации, и мне это нужно.
Итак, как мне создать пользователя с правами администратора для любой базы данных. Я хочу, потому что я настроил свои сервисы Монго на использование аутентификационного соединения. Если я хочу выполнить дамп своих данных, я должен использовать эти параметры аутентификации.
Пожалуйста, помогите?
Использование Монго версии 3.0.5 .
служба работает на Amazon Linux AMI 2015.03 (HVM), тип тома SSD - ami-1ecae776
источник
Согласно
MongoDB BOL
Enable Auth При включенном управлении доступом убедитесь, что у вас есть пользователь с ролью userAdmin или userAdminAnyDatabase в базе данных администратора. Этот пользователь может администрировать пользователя и роли, такие как: создавать пользователей, предоставлять или отзывать роли у пользователей, а также создавать или изменять таможенные роли.Вы можете создавать пользователей до или после включения контроля доступа. Если вы включите контроль доступа перед созданием любого пользователя, MongoDB предоставит исключение localhost, которое позволяет вам создать администратора пользователя в базе данных администратора. После создания необходимо авторизоваться как администратор пользователя, чтобы при необходимости создать дополнительных пользователей.
Процедура
Вот следующая процедура, с помощью которой вы можете
Enable Auth
. Сначала добавляется администратор пользователя к экземпляру MongoDB, работающему без контроля доступа, а затем включает контроль доступа.Подключиться к экземпляру
Например, подключите
mongo
оболочку к экземпляру.Укажите дополнительные параметры командной строки для подключения
mongo
оболочки к вашему развертыванию, например--host
.Создать администратора пользователя
Например, здесь, в базе данных администратора, добавьте пользователя с
userAdminAnyDatabase
ролью. Например, следующее создает пользователяmyUserAdmin
в базе данных администратора :Отключить
mongo
оболочку.Перезапустите экземпляр MongoDB с контролем доступа
Перезапустите
mongod
экземпляр с параметром командной строки --auth или, если используется файл конфигурации, с параметром security.authorization .Клиенты, которые подключаются к этому экземпляру, теперь должны аутентифицировать себя как
MongoDB
пользователя. Клиенты могут выполнять действия только в соответствии с назначенными им ролями.Подключитесь и авторизуйтесь как администратор пользователя
Используя
mongo
оболочку, вы можете:Соединитесь с аутентификацией, передавая учетные данные пользователя, или
Сначала подключитесь без аутентификации, а затем выполните метод db.auth () для аутентификации.
Для проверки подлинности во время подключения Запустите
mongo
оболочку с параметрами-u <username>, -p <password>, and the --authenticationDatabase <database>
командной строки:Аутентифицировать после подключения
Подключите
mongo
оболочку кmongod
:Переключитесь на базу данных аутентификации (в данном случае admin) и используйте метод db.auth (,) для аутентификации:
источник