У меня есть две базы данных (а именно, test и admin) в mongodb. Admin - база данных по умолчанию. Я создал пользователя с правами администратора:
use admin
db.createUser(
{
user: "admin_1",
pwd: "admin1234",
roles: [
{
role: "dbOwner",
db: "test"
},
{
role: "userAdminAnyDatabase",
db: "admin"
}
]
}
)
Я создал другого пользователя в тестовой базе данных с:
{
role: "dbOwner",
db: "test"
}
Я использую базы данных mongoengine и django для подключения к mongodb, например:
mongoengine.connect(
db=config.main_db,
host=config.host,
username=config.username_test,
password=config.password_test,
authentication_source=config.authSource_test
)
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': config.main_db,
'USER': config.username_test,
'PASSWORD': config.password_test,
}
}
Это дает мне ошибку аутентификации.
Однако, когда я использую config.username_admin и config.password_admin в БАЗАХ ДАННЫХ, все работает нормально.
Я не понимаю, почему это не удается. Кто-нибудь может это исправить? Я защитил эти БД с помощью учетных данных и следовал этому методу
Я ожидаю, что БАЗЫ ДАННЫХ должны принимать «тестовые» учетные данные и работать, а не «административные» учетные данные.
Также я хочу удалить роль dbOwner на тестовой базе данных в администраторе db
Я использую: mongodb: 3.4, mongoengine: 0.16, django 2.1 и python3