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

在一个没有超级用户的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.kler.cn/a/156401.html

相关文章:

  • request爬虫库的小坑
  • 字符及字符串(ASCII编码系统)
  • Autosar CP DDS规范导读
  • Rust 建造者模式
  • Python用CEEMDAN-LSTM-VMD金融股价数据预测及SVR、AR、HAR对比可视化
  • 使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏
  • 【每日OJ —— 110. 平衡二叉树】
  • uniapp微信小程序解决绘制polygon结束时的问题
  • pdfjs,pdf懒加载
  • 高效且实用的表单配置方式:低代码表单上传文件后即刻回显
  • ruoyi+Hadoop+hbase实现大数据存储查询
  • 400页Python学习PDF笔记,全面总结零基础入门看这一篇足够了
  • 《微信小程序开发从入门到实战》学习四十
  • 大数据|计算机毕业设计——基于Django协同过滤算法的房源可视化分析推荐系统的设计与实现
  • flutter开发实战-readmore长文本展开和收缩控件
  • C++学习 --函数对象
  • 线上超市小程序可以做什么活动_提升用户参与度与购物体验
  • 活动回顾|德州仪器嵌入式技术创新发展研讨会(上海站)成功举办,信驰达科技携手TI推动技术创新
  • 学习-java多线程面试题
  • 在 Linux 上修改 Oracle 控制文件、日志文件和数据文件的目录的脚本
  • Rust UI开发(五):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)
  • (一)舒尔特表练习记
  • 新手村之SQL——函数多表联结
  • rman SBT_TAPE NFS disk 模拟NBU带库 FRA
  • Android跨进程通信,binder,native层,服务端在servicemanager注册服务
  • 【FAQ】运动健康服务端侧数据常见问题及解答