锁定在mongodb副本集之外

我有一个3个成员的
mongodb副本集(版本2.4),其中’admin’db的管理员用户没有’userAdminAny
Database‘角色.

管理所有数据库上的用户需要此角色.

我目前的角色是:[“readWriteAnyDatabase”,“dbAdminAnyDatabase”,“clusterAdmin”]

我尝试为自己更新角色或创建新用户,但是我无权访问admin db中的db.system.users.

我尝试设置noauth = true但这没有帮助.同时删除keyFile时,db无法与其他成员同步(显然)并且卡在RECOVERY状态.

我发现一个similar question指的是一个独立的数据库(没有副本集)所以它在这种情况下并没有真正的帮助.

在最小的系统停机时间内添加此角色的最佳方法是什么?

最佳答案 我将使用
mongodump
mongorestore备份数据,然后使用正确的权限重建节点并恢复数据.

但是这种方法应该是work

If you have locked yourself out then you need to do the following:

  1. Stop your MongoDB instance
  2. Remove the –auth and/or –keyfile options from your MongoDB config
    to disable authentication
  3. Start the instance without authentication
  4. Edit the users as needed
  5. Restart the instance with authentication enabled
点赞