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

2023-12-04 14:36

本文主要是介绍在一个没有超级用户的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")

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

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

这篇关于在一个没有超级用户的mongodb 生产库上如何添加超级用户的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453814

相关文章

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

电脑没有仿宋GB2312字体怎么办? 仿宋GB2312字体下载安装及调出来的教程

《电脑没有仿宋GB2312字体怎么办?仿宋GB2312字体下载安装及调出来的教程》仿宋字体gb2312作为一种经典且常用的字体,广泛应用于各种场合,如何在计算机中调出仿宋字体gb2312?本文将为您... 仿宋_GB2312是公文标准字体之一,仿China编程宋是字体名称,GB2312是字php符编码标准名称(简

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf