Итак, я пытаюсь настроить MongoDB, используя официальный mongo Docker образ , версия 4.2
.
Чего я хочу добиться - это использовать сервер с включенной аутентификацией,и я хочу иметь пользовательскую базу данных с пользовательским именем пользователя и паролем.
Итак, я устанавливаю следующие переменные среды:
MONGO_INITDB_DATABASE: mydb
MONGO_INITDB_ROOT_USERNAME: jane
MONGO_INITDB_ROOT_PASSWORD: secret
В документации говорится, что если вы предоставитеДля двух последних переменных среды аутентификация включается автоматически.
Однако, когда я пытаюсь получить доступ к базе данных mydb
, используя учетные данные jane
и secret
, все, что я получаю, это ошибка:
Supported SASL mechanisms requested for unknown user 'jane@mydb'
SASL SCRAM-SHA-1 authentication failed for jane on mydb from client 172.17.0.1:54702 ; UserNotFound: Could not find user "jane" for db "mydb"
Почему это? Чего мне не хватает?
Я предполагаю, что созданный пользователь имеет доступ только к базе данных admin
, и мне нужно предоставить пользователю jane
доступ к базе данных mydb
. Я попытался сделать это с помощью следующей команды:
mongo admin -u jane -p secret --eval "db.grantRolesToUser('jane', [{role: 'dbOwner', db: 'mydb'}])"
Но это тоже не сработало. Чего мне не хватает?