Здраствуйте.
Создал пользователя у базы "admin" в монго. Указал ему все права которые нашел. версия монго 2.4.9
{
"_id" : ObjectId("5565d4b0e2cb3c06a51bc810"),
"user" : "root2",
"pwd" : "83649f9cf3fc01bd7dce347baf12e838",
"roles" : [
"read",
"readWrite",
"dbAdmin",
"userAdmin",
"clusterAdmin",
"readAnyDatabase",
"readWriteAnyDatabase",
"userAdminAnyDatabase",
"dbAdminAnyDatabase"
]
}
Моя попытка скопировать код:
import pymongo
from pymongo import MongoClient
client2 = MongoClient('52.74.52.245', 27017)
client2.admin.authenticate('root2', 'password')
print(client2.shoppr_db.collection_names())
client = MongoClient()
client.admin.command(
'copydb',
fromdb='shoppr_db',
todb='del4',
fromhost='52.74.59.245',
username='root2',
key='83649f9cf3fc01bd7cce347baf22e838'
)
Названия коллекция выводятся как положено. Но при попытке скопировать базу происходит ошибка:
,,,on namespace admin.$cmd failed: exception: nextSafe(): { $err: "not authorized for query on shoppr_db.system.namespaces", code: 16550 }
Я так и не нашел по руководству куда вписывать пароль. Точней нашел, что вроде нужно указать "hash" пароля в поле key. Подумал, что "hash" поле это строка "pwd" : "83649f9cf3fc01bd7dce347baf12e838", которая отображалась после регистрации пользователя.
Так же у базы shoppr_db имеется свой пользователь "user" с правами на чтение(Если это имеет значение).
Копирование не получается когда в конфиге монго включен параметр "auth=true". Если его отключить "#auth=true", то копирование происходит успешно.
Вообщем не разобрался как авторизировать пользователя при попытке копирования базы данных и включенном параметре "auth=true"