当前位置: 首页 > news >正文

在一个没有超级用户的mongodb 生产库上如何添加超级用户

说来这个问题,都觉得不可思议,一个数据库怎么没有超级用户呢,我们知道,MYSQL,PG,ORACLE等,创建好后,都有一个默认的超级用户,MONGODB也有超级用户,但需要自己去建立,默认是没有的。国内一些软件公司,可能为了安全的因素,在部署应用时,就没有创建超级用户,同时启用了权限认证auth,然后就创建自己的业务数据库,导致后面维护时,只能登录到他的库去看该库的信息,但整个MONGODB的运行信息,由于没有超级用户信息,很多信息,都无法获取,比如运行 db.serverStatus() 都会报错,这种情况下,后面我们怎么才能把超级用户加进去呢 

下面我们来讲一下后期添加超级用户的步骤:

1.关闭配置文件权限认证


#security:
  #authorization: enabled

  要加超级用户,必须要关闭权限认证,这个通过修改配置文件来实现。

2.关闭数据库

  关闭数据库,可以通过操作系统方式来实现

  ps -ef|grep mongod

  kill -9 pid

  或者:
  use admin
  db.shutdownServer();


3.做好备份

  为了避免出现失误,在后续的操作之前,最好把数据库做一个备份

   我这里使用 tar 命令备了一个,后面有问题,直接使用tar 还原即可

    tar cvf mongodb.tar /data/mongo/db

4.重启数据库


mongod -f /etc/mongodb.conf 

以第一步关闭权限认证方式生效。

5.登录数据库

mongo  --host=localhost --port=27017

这个时候,登录,不再需要用户账户信息,就可登录。

6.增加超级用户

> use admin    --切换到ADMIN数据库
switched to db admin

> show tables;  --查看一下目前里面有哪些表
system.users
system.version

--创建管理用户

> db.createUser({'user':'root',
                 'pwd':'sztech@root',
                 'roles':[{role:'root',db:'admin'}]})

Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

7.关闭数据库

  use admin
  db.shutdownServer();

8.修改配置文件增加权限验证


vim /etc/mongodb.conf
#登录验证
auth=true

9.重新启动数据库

mongod -f /etc/mongodb.conf 

这个时候,开启了权限认证

10.本地登录 - 连接时验证


$ mongo

> use admin
switched to db admin

> db.auth("username", "password")

比如我们这里:

> db.auth("root","sztech@root")

我也可以去验证一下业务用户

> db.auth("ordb","ordb@ordb")

没有问题,然后,使用业务用户登录去做一些查询操作,验证业务用户可以正常操作。

   到此,超级用户添加成功。

http://www.lryc.cn/news/254323.html

相关文章:

  • 排序算法之二:冒泡排序
  • 一键搭建你的hnust请假条
  • C练习题13
  • 交易历史记录20231206 记录
  • 1-5总体分布的推断
  • 深信服技术认证“SCSA-S”划重点:XSS漏洞
  • MIT6S081-Lab2总结
  • CMMI5大成熟度等级和4大过程域
  • c++新经典模板与泛型编程:const修饰符的移除与增加
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于加密算法的车载CAN总线安全通信
  • 4-Docker命令之docker start
  • AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 2 “架构 AWS”
  • 日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)
  • 内核无锁队列kfifo
  • 18、XSS——cookie安全
  • 从零开发短视频电商 Jmeter压测示例模板详解(无认证场景)
  • C++可以函数重载而C不可以的原因
  • Spark常见算子汇总
  • 【华为数据之道学习笔记】3-1 基于数据特性的分类管理框架
  • 电脑版便签软件怎么设置在桌面上显示?
  • 【华为数据之道学习笔记】2-建立企业级数据综合治理体系
  • 【IC前端虚拟项目】git和svn项目托管平台的简单使用说明
  • C++ IO库
  • Springboot 项目关于版本升级到 3.x ,JDK升级到17的相关问题
  • QGraphicsView实现简易地图7『异步加载-多瓦片-无底图』
  • Spring Boot学习(三十三):集成kafka
  • MOSFET
  • DriveWorks——参数化设计非标定制利器
  • DevEco Studio集成ArkUI-X
  • 网络视频服务器的作用是什么?