MongoDB - пользователи не восстанавливаются с помощью команды mongorestore
Я новичок в MongoDB и тестирую некоторые базовые операции резервного копирования и восстановления в одном экземпляре MongoDB.
Все тесты работали нормально, кроме восстановления пользователей.
Сначала я создал резервную копию тестовой базы данных (db_test), используя следующую команду:
$ mongodump -u adm_dump --authenticationDatabase admin -d db_test --dumpDbUsersAndRoles -o /opt/backup/mongodump_db_test
adm_dump - это пользователь, которого я создал с ролями "восстановление" и "резервное копирование".
2 пользователя присутствуют в базе данных db_test с ролями "readWrite" и "read" соответственно. Так что я ожидал, что эти оба пользователя будут восстановлены.
Затем я восстановил базу данных в базу данных db_test_2 (не существует):
$ mongorestore -u adm_dump --authenticationDatabase admin -d db_test_2 --restoreDbUsersAndRoles /opt/backup/mongodump_db_test/db_test
Новая база данных db_test_2 успешно создана (все коллекции восстановлены), но пользователи не восстановлены в db_test2.
Ниже бревенчатого хвоста:
...
2016-06-29T18:28:26.429+0200 restoring users from /opt/backup/mongodump_db_test/db_test/$admin.system.users.bson
2016-06-29T18:28:26.464+0200 roles file '/opt/backup/mongodump_db_test/db_test/$admin.system.roles.bson' is empty; skipping roles restoration
2016-06-29T18:28:26.464+0200 restoring roles from /opt/backup/mongodump_db_test/db_test/$admin.system.roles.bson
2016-06-29T18:28:26.468+0200 done
Я также предоставил роль "userAdmin" adm_dump и несколько раз выполнял операции, но безуспешно. Должен ли я дать другую конкретную роль пользователю adm_dump?
Я прочитал документ и гуглил параметры dumpDbUsersAndRoles / restoreDbUsersAndRoles, но ничего не нашел.
Что я упустил, чтобы восстановить пользователей из резервной копии дампа?
MongoDB версия 3.2.1 на CentOS 6.6
0 ответов
Если кто-то еще пытается это сделать...
- Не указывайте db или коллекцию в дампе mongo.
- Войдите в систему как пользователь с правами администратора (возможно
adm_dump
есть эти привилегии?) - Не использовать
--dumpDbUsersAndRoles
, это применимо только в том случае, если вы укажете db. См. Документы.
Пример:
$ mongodump -u adm_dump --authenticationDatabase admin --dumpDbUsersAndRoles -o /opt/backup/mongodump_db_test