Переключить Mongodb аутентификации - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь переключить mongodb без аутентификации на него, следуя приведенному ниже руководству:

https://docs.mongodb.com/manual/tutorial/enable-authentication/

Я проверяю образ докера, поскольку это выглядело довольно легковариант, но в тот момент, когда я делаю перезапуск сервиса, он не принуждает его к пользователю - Авторизация для входа!

Шаги для воссоздания:

1: запуск докера --name my-mongo -p 27017: 27017 -d mongo
2: запуск docker -it my-mongo (открываетсяоболочка mongo)
3: (запустить создание кода пользователя)
4: перезапустить контейнер
5: выполнить docker exit -it my-mongo mongod --auth --port 27017 (возвращает приведенный ниже вывод)

enter image description here

Включена полная аутентификация параметров безопасности!казалось хорошей новостью для меня!Но я все еще могу сделать

mongo --port 27017 

и подключиться к коробке ... что, кажется, говорит о том, что я не должен

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 30 ноября 2018

Ошибка означает, что у вас уже есть mongod, работающий на 27017, что неудивительно: на шаге 1 вы раскручиваете экземпляр mongod и при перезапуске контейнера этот экземпляр возвращается, поэтому на шаге 5 создается другой mongod.вызовет конфликт портов.

Это более удобный способ включения аутентификации с помощью Docker.

docker run -d --name some-mongo -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=secret mongo

Если вам нужно больше пользователей, используйте его в качестве файла Dockerfile

FROM mongo:4
COPY setup.sh /docker-entrypoint-initdb.d/

и в setup.sh положить что-то вроде

mongo=( mongo --host 127.0.0.1 --port 27017 --quiet )
mongo+=(
    --username="$MONGO_INITDB_ROOT_USERNAME"
    --password="$MONGO_INITDB_ROOT_PASSWORD"
    --authenticationDatabase="$rootAuthDatabase"
)
export MONGO_INITDB_DATABASE="${MONGO_INITDB_DATABASE:-testdb}"
export MONGO_APP_USER=${MONGO_APP_USER:-usr}
export MONGO_APP_USER_PWD=${MONGO_APP_USER_PWD:-pwd}
export MONGO_DB_OWNER=${MONGO_DB_OWNER:-dbowner}
export MONGO_DB_OWNER_PWD=${MONGO_DB_OWNER_PWD:-pwd}

"${mongo[@]}" "$MONGO_INITDB_DATABASE" <<-EOJS
    db.createUser({
        user: $(jq --arg 'user' "$MONGO_APP_USER" --null-input '$user'),
        pwd: $(jq --arg 'pwd' "$MONGO_APP_USER_PWD" --null-input '$pwd'),
        roles: [ { role: 'readWrite', db: $(jq --arg 'db' "$MONGO_INITDB_DATABASE" --null-input '$db') } ]
    });
    db.createUser({
        user: $(jq --arg 'user' "$MONGO_DB_OWNER" --null-input '$user'),
        pwd: $(jq --arg 'pwd' "$MONGO_DB_OWNER_PWD" --null-input '$pwd'),
        roles: [ { role: 'dbOwner', db: $(jq --arg 'db' "$MONGO_INITDB_DATABASE" --null-input '$db') } ]
    })
EOJS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...