我在我的mongoinstance上创建了两个角色如下的用户
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正在使用上面的凭证启动并运行
mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb我遇到了下面的错误,无法解决这个问题
connected to: localhost:27017
assertion: 13 not authorized on admin to execute command { getParameter: 1, authSchemaVersion: 1 }有什么想法吗?我哪里做错了?
发布于 2015-04-20 23:47:41
正如@wdberkeley所建议的,通过将db name作为参数传递,问题得到了解决
下面的命令运行正常
mongodump --host localhost --port 27017 -u dbUser -p dbPassword -d mydb发布于 2015-04-17 21:03:46
mongodump不是Mongo shell命令,它是一个操作系统命令。
就像您在操作系统提示符下运行mongo.exe来启动shell一样,您应该以同样的方式从操作系统提示符运行mongodump。示例:
mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb谢谢
发布于 2020-03-20 12:53:41
userAdminAnyDatabase不足以在所有的数据库上做mongodump,这就是为什么你得到这个错误的原因。您需要具备以下条件的超级用户:
userAdminAnyDatabase
readWriteAnyDatabase
clusterAdmin在所有数据库上运行mongodump的权限。
或者你只需要‘备份’特权
db.grantRolesToUser('username', [{
role: 'backup',
db: 'name of ur authentication db'
}])https://stackoverflow.com/questions/29699906
复制相似问题