2016-10-25 4 views
0

Мой вопрос о оболочке mongo --authenticationDatabase.База данных аутентификации MongoDB Цель

Я был смущен этим на некоторое время, думая, что база данных я создал пользователь в была база данных администратора, так что, когда пользователь фактически определяются после прочтения этой документации здесь: https://docs.mongodb.com/manual/core/security-users/#user-management-interface

Я понимаю, что я был неправильно; база данных аутентификации - это база данных, для которой пользователь имеет роль. Тогда мой вопрос заключается в том, какова цель опции «--authenicationDatabase»? См. Мои сценарии ниже.

Команда ниже будет подключаться к базе данных MYAPP, а также проверку подлинности на базе MYAPP

mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myapp 

Команда ниже будет подключаться к базе данных MYAPP, а также проверку подлинности на базе MYAPP по умолчанию. Это, похоже, делает команду выше устаревшей.

mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myapp 

Приведенная ниже команда будет аутентифицирована против базы данных myapp, но не будет подключена к ней. Зачем? Это просто проверка учетных данных?

mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" 

Эта команда сообщила мне: «Ошибка: аутентификация не удалась». так что я все еще удивляюсь, почему мне нужна предыдущая команда, чтобы узнать, что мои учетные данные неверны.

mongo -u "bob" -p "bobspassword" myapp 

Наконец, существует ли ситуация, когда мне нужно пройти аутентификацию в отношении одной базы данных и подключиться к другой, как в приведенной ниже команде? Я могу подключиться только к базам данных, для которых у меня определенная роль, поэтому почему бы мне не аутентифицироваться в отношении базы данных, к которой я пытался подключиться?

mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myotherapp 

Благодарим вас за понимание!

ответ

0

В монго вы подключаетесь к серверу, а не к базе данных. После этого вы можете изменить базу данных.

код:

mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" 

будет подключаться к mongod сервер, и он будет использовать «test» базу данных, если другие не определено

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

mongo -u "bob" -p "bobspassword" myapp 

И финал:

Lastly, is there a situation where I need to authenticate against one database and connect to a different one..

Нет

+0

Почему я хочу подключиться только к серверу/тест? Запустить 'show dbs'? Что-нибудь еще? – Daniel

+0

Может быть, создать db? Думаю, это имеет смысл. – Daniel

+0

Это поведение по умолчанию, чтобы подключиться к тесту db, вам нужно где-то писать. В монго, БД создаются в момент сохранения первого документа. – sergiuz

Смежные вопросы