MongoDB - 未使用命令mongorestore恢复的用户

时间:2016-06-29 16:59:20

标签: mongodb mongorestore

我是MongoDB的新手,我在一个MongoDB实例中测试了一些基本的备份和还原操作。

除了恢复用户外,所有测试都运行良好。

我首先使用以下命令创建了测试数据库的备份( db_test ):

$ mongodump -u adm_dump --authenticationDatabase admin -d db_test --dumpDbUsersAndRoles -o /opt/backup/mongodump_db_test

adm_dump 是我使用" restore"创建的用户。和"备份"作用。

2个用户出现在 db_test 数据库中,其中包含" readWrite"和"阅读"角色分别。所以我期待这两个用户都能恢复。

然后我将数据库恢复到数据库 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 用户提供另一个特定角色吗?

我阅读了doc,并在dumpDbUsersAndRoles / restoreDbUsersAndRoles选项上进行了搜索,但没有发现任何相关内容。

从转储备份中恢复用户我错过了什么?

CentOS 6.6上的MongoDB版本3.2.1

1 个答案:

答案 0 :(得分:0)

万一有人试图这样做...

  1. 不要在mongo dump中指定数据库或集合。
  2. 以具有管理员特权的用户身份登录(也许F:\java>java CustomSortingClass unsorted Student Student@b065c63** 拥有那些特权?)
  3. 请勿使用adm_dump,这仅在您指定数据库时适用。请参阅docs

示例:

--dumpDbUsersAndRoles