错误:未授权db执行命令

时间:2015-12-10 20:34:35

标签: mongodb authentication mongorestore bigdata

我试图在mongo 3.0.7中使用mongorestore恢复一个巨大的文件。除了一个名为system.users的文件外,文件夹prod079下的所有文件都已成功恢复。用于恢复的命令是

 mongorestore -u testdba -p xxxxxx -d prod079 /data/backup --batchSize=1

上面的命令从同一个文件夹恢复了400GB的数据,但是单独使用这个文件似乎失败了。

我收到这样的错误:

  

错误:未在prod079上授权执行命令{insert:   " system.users",documents:[{_ id:ObjectId(' 531e5251864fb4e84b'),   pwd:" xxxxxxxx",角色:[" dbAdmin"," readWrite"," userAdmin" ],用户:   " AB" }],writeConcern:{getLastError:1,w:1},ordered:false}

     

2015-12-10T13:20:49.196-0500错误:未在prod079上授权   执行命令{insert:" system.users",documents:[{_ id:   ObjectId(' 531e5251864fb4e84c'),user:" abuser",pwd:" xxxxxxxx",   角色:["阅读" ]}],writeConcern:{getLastError:1,w:1},   ordered:false}

     

2015-12-10T13:20:49.196-0500错误:未在prod079上授权   执行命令{insert:" system.users",documents:[{_ id:   ObjectId(' 5452840f169afa3a2'),用户:" asmeta",pwd:" xxxxxxxx",角色:   ["阅读" ]},writeConcern:{getLastError:1,w:1},有序:   假}

所以基本上我得到了很多像这样的错误。我尝试在stackoverflow和google上寻找类似的错误,但我能找到的只包括-d或include localhost。然后我发现一条帖子说我没有为testdba用户提供userAdmin / userAdminAnyDatabase权限。这次我尝试以具有userAdmin / userAdminAnyDatabase权限的admin用户身份运行。我使用的命令是:

mongorestore -u admin -p xxxxx -d prod079 /data/backup --batchSize=1 

这次我遇到了不同类型的错误。它说:

  

2015-12-10T13:17:59.940-0500失败:连接到数据库服务器时出错:   SASL身份验证步骤上的服务器返回错误:身份验证   失败。

现在我真的很困惑发生了什么以及我为什么单独面对这个文件的问题。另外,当我尝试以管理员身份恢复时,我无法理解为什么我的错误如此不同。

任何建议/帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

我尝试了上面列出的所有方法,但都没有。

我将“恢复”角色授予了管理员用户,但它确实有效。

documentation中查看有关“恢复”的更多信息。

答案 1 :(得分:0)

尝试将选项 --nsInclude 添加到 mongorestore 命令:

mongorestore -u="testdba" -p="xxxxxx" --authenticationDatabase="prod079" --nsInclude="prod079.*" /data/backup --batchSize=1

您可以在 the offical document 上找到更多详细信息。