管理员用户权限:
db.getUsers()
[
{
"_id" : "admin.myself",
"user" : "myself",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "dbAdmin",
"db" : "reports"
},
{
"role" : "dbAdmin",
"db" : "places"
}
],
"customData" : {
}
}
]
我可以通过身份验证进入我的远程 mongo 数据库,例如,
mongo --host <hostname> -u "myself" -p "myself" --authenticationDatabase "admin"
我也可以像这样远程转储
mongodump --host <hostname> --port 27017 --username "myslef" --password "myself" --out home/myself/mongodb-backup
但是当我修改数据库上的一些集合并尝试像下面的代码一样恢复它时,它不起作用并抛出一个身份验证错误。
mongorestore --host <hostname> -u "myself" -p "myself" home/myself/mongodb-backup/
错误:
Failed: error getting auth version of server: not authorized on admin to execute command { getParameter: 1, authSchemaVersion: 1 }
最佳答案
你应该像这样给你的管理员添加 root 角色
db.grantRolesToUser( "myAdmin", [ "root" ])
只有在那之后你才能从备份中恢复
关于mongodb - mongo 和 mongodump 与 auth 一起工作,但 restore 不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799507/