MongoDB 副本集删除超级用户后恢复

背景:
MongoDB 副本集admin(管理员)创建时,赋予了userAdminAnyDatabase权限,导致通过admin用户备份时,无权限,需要赋予root权限。
因此将admin用户删除后,无法再次创建admin权限,因此需要将副本集节点修改成单节点模式启动,创建admin用户后,再以副本集启动,加入副本集。
注意:完全可以先创建其他名字的管理员账号后再删除admin。

修改 MongoDB 副本集配置文件,将security和replication全部注释掉,单节点启动:(先修改两个slave节点,最后再修改主节点)

systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/27018/log/27018.log
storage:
  dbPath: /data/mongodb/27018/data
  journal:
    enabled: true
  directoryPerDB: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 20
      directoryForIndexes: true
    collectionConfig:
      blockCompressor: snappy
processManagement:
  fork: true
  pidFilePath: /data/mongodb/27018/pid/mongodb_27018.pid
net:
  bindIp: 0.0.0.0
  port: 27018
operationProfiling:
  mode: all
  slowOpThresholdMs: 200
  rateLimit: 1000
#security:
# authorization: enabled
# clusterAuthMode: keyFile
# keyFile: /data/mongodb/27018/keys/keyfile
#replication:
#  replSetName: hankyoon
#  oplogSizeMB: 4096

登陆单节点模式,创建管理员账号:

# mongo --port 27018
> use admin
> db.auth('admin','hankyoon7777') Successfully added user: { "user" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }

修改完成后,通过rs.status()查看副本集状态,以及请研发同学配合验证一下业务运行情况

posted @ 2021-12-13 23:32  __Yoon  阅读(168)  评论(0编辑  收藏  举报