У меня есть удаленная база данных mongo, в которой я установил определенную базу данных и пользователя с привилегиями dbOwner. Я могу получить доступ к этой базе данных с помощью этой информации о пользователе, но я не могу скопировать эти данные с помощью copyDatabase. Я читал это найти доступ требуется, но разве это не часть доступа владельца? это специально упоминается в документации (http://docs.mongodb.org/manual/reference/built-in-roles/) у этого владельца есть все права администратора, а у администратора - право на поиск. но при попытке вызвать эту функцию я получаю
"errmsg": "exception: nextSafe (): {$ err: \" не авторизован для запроса на db1.system.users \ ",
Для справки вот что возвращает getUser:
db.getUser ('mu1')
{"_id": "db1.mu1", "user": "mu1", "db": "db1", "roles": [{"role": "dbOwner", "db": "db1"}] }
Как такое может случиться с владельцем db1?
Спасибо!
Существуют требования к доступу как к исходной, так и к целевой базам данных, чтобы можно было выполнить копирование. Предполагая, что вы используете 2.6 (что, я думаю, вам дано, что роль dbOwner была введена в 2.6), требования подробно изложены здесь (примечание: вы не должны использовать copyDatabase с ролями в 2.4):
http://docs.mongodb.org/manual/reference/method/db.copyDatabase/#required-access
Копия фактически выполняется на целевом экземпляре (на том, в который вы копируете), поэтому я предполагаю, что проблема здесь в том, что у вас нет правильные разрешения на цели хост.