在一个没有超级用户的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

相关文章

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

安装SQL2005后SQL Server Management Studio 没有出来的解决方案

一种情况,在安装 sqlServer2005 时 居然出现两个警告: 1 Com+ 目录要求 2 Edition change check 郁闷!网上说出现两个警告,是肯定装不成功的!我抱着侥幸的态度试了下,成功了。 安装成功后,正准备 “ 仅工具、联机丛书和示例(T)” 但是安装不了,他提示我“工作站组件”安装过了对现有组件无法更新或升级。 解决办法: 1 打开“控

家庭和学生用户笔记本电脑配置方案

2.6.1  家庭和学生用户笔记本电脑配置方案   2.6.1  家庭和学生用户笔记本电脑配置方案   普通家庭用户、学生用户主要用于上网、娱乐、学习等,这类用户要求笔记本电脑的各方面 功能比较均衡。在选购此类笔记本电脑时,主要考虑外观设计方面要比较时尚,而且性能上也要 够强,一些大型复杂的软件以及目前的主流游戏都要能够流畅地运行才行。   对于CPU方面,可以考虑目前主流的第二

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

生产mongodb 分片与集群 方案

链接:http://my.oschina.net/pwd/blog/411439#navbar-header 注:主要是有一键安装的脚本可以借鉴

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo