Mongodb аутентификация внутри док-контейнера - PullRequest
0 голосов
/ 10 декабря 2018

Это моя ситуация.У меня есть экземпляр контейнера Docker Mongodb, и мне нужно изменить пароль администратора.Теперь у меня есть учетные данные для подключения к mongodb, используя хост, ip и учетные данные.У меня есть доступ к серверу через SSH, и мне нужно изменить пароль администратора.Но если я это сделаю,

mongo manager --port 27017 -u "admin" -p "--------"
--authenticationDatabase "manager"

Дает мне ошибку аутентификации.И я не могу выполнить какие-либо административные команды, такие как: db.auth ('admin', 'password')

Мой вопрос: как я могу остановить монго внутри контейнера, если я это сделаю?

docker exec -it mongodb bash

Любой другой обходной путь будет работать.Целью является изменение пароля или создание нового пользователя-администратора для управления пользователями и ролями.

Большое спасибо за помощь.Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

0 голосов
/ 29 декабря 2018

Вы уверены, что ваша аутентификационная база данных - "менеджер"?

В любом случае вам не нужно останавливать процесс Монго для взаимодействия с базой данных, но аутентифицировать пользователя с необходимыми привилегиями с помощью оболочки Монго.

  1. Получить доступ к запущенному контейнеру mongo:

    $ docker exec -it «имя_ контейнера» bash

  2. Аутентификация с использованием оболочки mongo:

    $ mongo -u admin -p 123admin --authenticationDatabase admin

  3. После аутентификации запустите сценарий оболочки, чтобы переключиться на базу данных, содержащую данные пользователя.

    $используйте admin

  4. Запустите команду changeUserPassword для изменения пароля:

    $ db.changeUserPassword ("admin", "admin123")

Вот и все.

...