1

Как я могу войти в оболочку mongo не показывая свой пароль? Все говорит либо использовать

mongo -u user -p password --authenticationDatabase admin

или же

mongo
> use admin;
> db.auth('user', 'password')

Мне не нравится ни один. Первый оставляет команду в истории cmd. Второго нет в истории, но он все еще отображается на экране в виде простого текста. Я пытался указывать пользователя только в надежде, что получит запрос пароля, который не отображает символы при вводе, но в обоих случаях возникает ошибка.

Есть ли способ войти в MongoDB таким образом, чтобы мой пароль не отображался на экране и не сохранялся в незащищенном файле (например, .bat или что-то еще)?

2 ответа2

0

Существует подход, который вы можете использовать из командной строки, который не повторяет ваш пароль: укажите параметр -p или --password без предоставления пароля. В этом случае вам будет предложено ввести пароль.

Например:

# Short parameter form
mongo -u user -p --authenticationDatabase admin

# Long parameter form
mongo --username user --password --authenticationDatabase admin

Вывод оболочки будет выглядеть примерно так:

MongoDB shell version: 3.2.11
Enter password: %

Я проверил это еще в MongoDB 2.4 (срок службы которого истек в марте 2016 года).

0

В настоящее время это запрос на открытую функцию (по состоянию на 2.6). Для голосования / отслеживания см. SERVER-3788.

Единственный способ достичь того, о чем вы сейчас просите, - это вообще не использовать user/pass (т.е. MONGODB-CR). Если вместо этого вы используете сертификаты X509 для проверки подлинности (для новой версии 2.6 требуется сборка с включенным SSL), то у вас больше не будет проблем с отображением в виде простого текста, и ваши экземпляры будут в целом более безопасными. Это что-то вроде молотка, чтобы расколоть грецкий орех, но до тех пор, пока запрос функции не будет завершен, это единственный реальный доступный вариант, если это требование.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .