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

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

目录

    • 一、MongDB权限概述
      • 1.1、MongDB权限概述
      • 1.2、MongDB权限列表
    • 二、Mongodb权限管理示例
      • 2.1、创建账号
        • 2.1.1、创建管理员用户
        • 2.1.2、开启认证
        • 2.1.3、创建普通账号

一、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
    

    在这里插入图片描述

  • 切换到admin数据库

    use admin
    

    在这里插入图片描述

  • 查看用户

    show users
    

    在这里插入图片描述

  • 创建管理员用户

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

    在这里插入图片描述

  • 然后查看创建的用户

    show users
    

    在这里插入图片描述

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
    

    在这里插入图片描述

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

    在这里插入图片描述

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

    use admin
    db.auth("admin","123456")
    

    在这里插入图片描述

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

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

    db
    

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

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

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

    在这里插入图片描述

  • 查看创建的普通用户

    > show users
    

    在这里插入图片描述

  • 登录test数据库

    use test
    db.auth("testuser","123456")
    

    在这里插入图片描述

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

http://www.lryc.cn/news/193937.html

相关文章:

  • AndroidX项目接入穿山甲广告填坑
  • 汽车电子 - matlab - 用法
  • freefilesync文件同步软件
  • 【2023】M1/M2 Mac 导入Flac音频到Pr的终极解决方案
  • C# 图解教程 第5版 —— 第6章 方法
  • 283 移动零
  • maven 编译.../maven-metadata.xml 报错
  • 【Rust笔记】Rust与Java交互-JNI模块编写-实践总结
  • uniapp:幸运大转盘demo
  • android 13.0 通过系统自定义服务控制屏幕亮屏和灭屏操作
  • 【SQL】新建库表时,报错attempt to write a readonly database
  • C++ --STL
  • 一卷到底,大明哥带你横扫 Netty
  • Python Opencv实践 - 车辆统计(1)读取视频,移除背景,做预处理
  • ROS-6.参数的使用
  • 机器视觉在自动驾驶汽车中的应用与挑战
  • 欠拟合、过拟合及优化:岭回归
  • Mybatis学习笔记注解/xml映射/动态SQL%%%Mybatis教程
  • Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用
  • 使用OpenSSL生成自签证书
  • Spring源码解析——Spring事务是怎么通过AOP实现的?
  • 机器人革命:脑洞大开的前沿机器人技术!
  • 微信小程序动态海报
  • 手写单例模式
  • 介绍6种解决电脑找不到vcomp140.dll,无法继续执行代码的方法。
  • mysql数据物理迁移
  • 构建图像金字塔:探索 OpenCV 的尺度变换技术
  • ios app开发环境搭建
  • mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离
  • 【数字IC设计】DC自动添加门控时钟