本文介绍: 已经运行一个MONGODB 生产库,该库已开启权限认证,但没有管理用户,只有业务用户这个时候我们要往这个库添加一管理用户,比如超级用户,怎么操作实现

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

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

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

#security:
  #authorization: enabled

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

2.关闭数据库

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

  psef|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=localhostport=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“)

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

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

原文地址:https://blog.csdn.net/cqsztech/article/details/134767321

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_36512.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注