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 @   __Yoon  阅读(189)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2019-12-13 pt-archiver 归档数据
点击右上角即可分享
微信分享提示