我有一个由3个成员组成的mongodb副本集(2.4版),其中'admin‘数据库的管理员用户没有'userAdminAnyDatabase’角色。
此角色是管理所有数据库上的用户所必需的。
我目前的角色是:"readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin“
我尝试为自己更新角色或创建新用户,但我没有权限访问管理员数据库中的db.system.users。
我尝试设置noauth=true,但没有帮助。当移除keyFile时,数据库无法与其他成员同步(很明显),并卡在恢复状态。
我发现了一个引用独立数据库(无副本集)的similar question,所以它在这种情况下并没有真正的帮助。
在系统停机时间最短的情况下添加此角色的最佳方式是什么?
发布于 2016-07-06 11:23:13
我将使用mongodump和mongorestore来备份数据,然后使用正确的权限重建节点并恢复数据。
但是,此方法应为work
如果您已将自己锁在外面,则需要执行以下操作:
在不启用用户身份验证的情况下,使用-- instance
发布于 2016-07-06 19:52:34
由于您使用的是Mongo2.4,这意味着您使用MMAP
作为存储引擎。
我的建议是:
由于移动文件到其他目录只是一个指针更改,这将需要几秒钟的时间。
请在实现之前进行测试。
欢迎任何评论!
https://stackoverflow.com/questions/38072988
复制相似问题