首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能运行mongodump

不能运行mongodump
EN

Stack Overflow用户
提问于 2015-04-17 20:59:18
回答 3查看 11.8K关注 0票数 4

我在我的mongoinstance上创建了两个角色如下的用户

代码语言:javascript
复制
use mydb
db.createUser(
  {
    user: "dbUser",
    pwd: "dbPassword",
    roles: [ { role: "dbOwner", db: "mydb" } ]
  }
)


use admin
db.createUser(
  {
    user: "adminUser",
    pwd: "adminPassword",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

现在,当我在终端中使用下面的命令尝试使用mongodump时,MongoDb正在使用上面的凭证启动并运行

代码语言:javascript
复制
mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb

我遇到了下面的错误,无法解决这个问题

代码语言:javascript
复制
connected to: localhost:27017
assertion: 13 not authorized on admin to execute command { getParameter: 1, authSchemaVersion: 1 }

有什么想法吗?我哪里做错了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-20 23:47:41

正如@wdberkeley所建议的,通过将db name作为参数传递,问题得到了解决

下面的命令运行正常

代码语言:javascript
复制
mongodump --host localhost --port 27017 -u dbUser -p dbPassword -d mydb
票数 16
EN

Stack Overflow用户

发布于 2015-04-17 21:03:46

mongodump不是Mongo shell命令,它是一个操作系统命令。

就像您在操作系统提示符下运行mongo.exe来启动shell一样,您应该以同样的方式从操作系统提示符运行mongodump。示例:

代码语言:javascript
复制
mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb

谢谢

票数 8
EN

Stack Overflow用户

发布于 2020-03-20 12:53:41

userAdminAnyDatabase不足以在所有的数据库上做mongodump,这就是为什么你得到这个错误的原因。您需要具备以下条件的超级用户:

代码语言:javascript
复制
userAdminAnyDatabase
readWriteAnyDatabase
clusterAdmin

在所有数据库上运行mongodump的权限。

或者你只需要‘备份’特权

代码语言:javascript
复制
db.grantRolesToUser('username', [{
  role: 'backup',
  db: 'name of ur authentication db'
}])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29699906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档