• MongoDB——centOS7环境Mongodb权限管理(图解版)


    一、MongDB权限概述

    1.1、MongDB权限概述

    • mongodb是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
    • mongodb添加账号需要使用use admin切换到admin数据库,在admin数据库添加的账号才是管理员账号。
    • mongodb的用户是以数据库为单位来建立的,每个数据库有自己的管理员。
    • mongodb帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证。

    1.2、MongDB权限列表

    角色说明
    Read允许用户读取指定数据库
    readWrite允许用户读写指定数据库
    dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root只在admin数据库中可用。超级账号,超级权限。

    二、Mongodb权限管理示例

    2.1、创建账号

    2.1.1、创建管理员用户
    • 查看数据库

      show dbs
      
      • 1

      在这里插入图片描述

    • 切换到admin数据库

      use admin
      
      • 1

      在这里插入图片描述

    • 查看用户

      show users
      
      • 1

      在这里插入图片描述

    • 创建管理员用户

      db.createUser( { user: "admin", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin"}]}) 
      
      • 1

      在这里插入图片描述

    • 然后查看创建的用户

      show users
      
      • 1

      在这里插入图片描述

    2.1.2、开启认证
    • 编辑配置文件 mongodb服务的conf目录下的mongdb.conf 文件
      在这里插入图片描述

    • 在mongdb.conf 文件中修添加如下内容:auth=true
      在这里插入图片描述

    • 修改之后,重启mongdb服务 ,重新连接mongdb

      #停止服务
      [root@localhost conf]# mongod --config /home/mongo/conf/mongodb.conf --shutdown
      #启动服务
      [root@localhost conf]# mongod --config /home/mongo/conf/mongodb.conf
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述

    • 使用创建好的管理员用户及密码,重新连接mongdb,如下图:

      在这里插入图片描述

    2.1.3、创建普通账号
    • 创建普通数据库, 先切到admin数据库,然后db.auth(“用户”,“密码”) 登录。

      use admin
      db.auth("admin","123456")
      
      • 1
      • 2

      在这里插入图片描述

    • 通过 use 命令创建数据库 test,如果已经有该数据就会进行切换。如果数据库没有数据执行 show dbs 数据库不会被显示

      > use test
      
      • 1
    • 可以通过 db 命令查看当前是哪个数据库

      db
      
      • 1

      在这里插入图片描述
      在这里插入图片描述

    • 在 test 数据库中 ,创建test数据库的用户

      db.createUser({user:"testuser",pwd:"123456",roles:[{role:"userAdmin",db :"test"},{role:"dbAdmin",db:"test"},{role:"readWrite",db:"test"}]})
      
      • 1

      在这里插入图片描述

    • 查看创建的普通用户

      > show users
      
      • 1

      在这里插入图片描述

    • 登录test数据库

      use test
      db.auth("testuser","123456")
      
      • 1
      • 2

      在这里插入图片描述

    • 使用创建好的test数据库的普通用户及密码,重新连接mongdb,如下图:
      在这里插入图片描述
      在这里插入图片描述

  • 相关阅读:
    sub0 里斯本精彩回顾:探索波卡区块的创新空间
    搭建一个简单的深度神经网络
    leetcode 263. Ugly Number(丑数)
    河北建筑模板厂家供应-能强优品木业
    python中numpy数组形状和计算
    [附源码]计算机毕业设计springboot基于web的建设科技项目申报管理系统
    [极致用户体验] 我又来帮掘金修专栏bug了,顺便教你个超牛逼的分割线CSS!
    FFmpeg入门详解之115:X264编码
    java 内部类
    MongoDB数据库
  • 原文地址:https://blog.csdn.net/li1325169021/article/details/133757881