MongoDB在admin库下面执行了db.dropAllUsers()导致没有管理权限要如何处理

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

测试的时候在amin库下面执行了db.dropAllUsers()操作,然后所有管理员用户都没有了,执行什么操作都提示Error: not authorized on admin to execute command...
下面来介绍一下出现这种情况要如何处理


先来看一下当前mongo实例的配置文件:

cat /etc/mongo.cnf 
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodata/log/mongo.log
  logRotate: rename
  timeStampFormat: ctime
  quiet: true 
storage:
  dbPath: /data/mongodata/data
  journal:
    enabled: true
    commitIntervalMs: 100
  directoryPerDB: true
  syncPeriodSecs: 60
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 20
      journalCompressor: snappy
    indexConfig:
      prefixCompression: true

processManagement:
  fork: true
  pidFilePath: /data/mongodata/data/mongo.pid

net:
  port: 27017
  bindIp: 0.0.0.0
  maxIncomingConnections: 3000
  wireObjectCheck: true
  ipv6: false
  unixDomainSocket:
                  enabled: false 
security:
  keyFile: /data/mongodata/data/keyfile
  authorization: enabled

operationProfiling:
  slowOpThresholdMs: 100
  mode: slowOp 

尝试1:改配置文件(失败)
在网上搜索后得知启动mongod服务的时候不指定--auth参数就可以了,看了mongod的服务启动脚本是以mongod -f /etc/mongo.cnf的方式启动的,我在想是不是把配置文件认证相关的配置禁掉就可以了,于是把authorization: enabled改成authorization: disabled,再重新启动mongod服务,发现还是需要认证

尝试2:指定参数启动服务(成功)
改配置文件不行的话就只能指定参数启动mongod服务了,当直接执行mongod --port 27017 --dbpath /data/mongodata/data 时报错:

Detected data files in /data/mongodata/data created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.

然后根据配置文件加上storage engine为wiredTiger的相关参数,再次启动mongod --port 27017 --dbpath /data/mongodata/data --storageEngine wiredTiger --wiredTigerCacheSizeGB 20 --wiredTigerJournalCompressor snappy,发现还有报错:
exception in initAndListen: 72 Requested option conflicts with current storage engine option for directoryPerDB; you requested false but the current server storage is already set to true and cannot be changed, terminating,
根据报错提示再加上directoryperdb的参数启动:mongod --port 27017 --dbpath /data/mongodata/data --storageEngine wiredTiger --wiredTigerCacheSizeGB 20 --wiredTigerJournalCompressor snappy --wiredTigerIndexPrefixCompression 1 --directoryperdb,最后重启成功,现在就可以在amdin库授权root用户了
提示:
1,具体要带哪些参数要根据配置文件来调整,如果指定的参数和实例原先的参数有冲突的话会起不来,不过不要紧,mongodb会有详细的日志输出,根据提示调整即可
2,如果mongod服务启动脚本不是用root用户来启的,则最好切到对应的帐号再启动,不然授权完后再次用脚本启时会报Permission denied的错误

!!注意:db.dropAllUsers()为高危操作,千万不要在生产环境执行


本文转自 emma_cql 51CTO博客,原文链接:http://blog.51cto.com/chenql/2072159


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6月前
|
存储 NoSQL MongoDB
【MongoDB】MongoDB 如何处理复杂的数据结构?
【4月更文挑战第2天】【MongoDB】MongoDB 如何处理复杂的数据结构?
|
30天前
|
NoSQL MongoDB 数据库
MongoDB 删除数据库
10月更文挑战第13天
31 0
|
3月前
|
NoSQL MongoDB
阿里云 MongoDB 创建库添加用户并授权
阿里云 MongoDB 创建库添加用户并授权
45 0
|
5月前
|
NoSQL JavaScript 安全
精心操作MongoDB:删除数据库的关键步骤和重要事项
精心操作MongoDB:删除数据库的关键步骤和重要事项
152 0
|
6月前
|
SQL 分布式计算 NoSQL
快速实践: 通过 Flink CDC 一键整库同步 MongoDB 到 Paimon
Apache Paimon (incubating) 是一项流式数据湖存储技术,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。
76909 4
快速实践: 通过 Flink CDC 一键整库同步 MongoDB 到 Paimon
|
6月前
|
消息中间件 SQL NoSQL
Flink mongodb支持CDAS 到那些下游?如果是不定格式的如何处理呀?mongodb的动态字段。
Flink mongodb支持CDAS 到那些下游?如果是不定格式的如何处理呀?mongodb的动态字段。【1月更文挑战第19天】【1月更文挑战第94篇】
127 6
|
11月前
|
NoSQL MongoDB 数据库
DMS(数据传输服务)支持对MongoDB数据库的整库导出
DMS(数据传输服务)支持对MongoDB数据库的整库导出
165 1
|
NoSQL Linux MongoDB
C++库封装mongodb(跨平台开发)
我的初衷是在Linux平台下只提供动态库和头文件,windows平台下提供静态库和头文件给开发者,这个库mongo-proxy对外提供了一些对mongodb的连接,增删改查,创建索引,聚合等操作的封装,开发者只需要关心接口如何调用,而不需要关心接口是如何实现的,也不需要关心mongo-c-driver的相关依赖,这里我抽象出mongo_proxy类,
|
1月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
21天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。