• 2.MongoDB 用户管理


    • 注意:
      • 验证库,建立用户时use到的库,在使用用户时,要加上验证库才能登陆。
      • 对于管理员用户,必须在admin下创建.
      • 1. 建用户时,use到的库,就是此用户的验证库
      • 2. 登录时,必须明确指定验证库才能登录
      • 3. 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
      • 4. 如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.
    • 创建用户的语法:
      • db.createUser
      • {
      • user: "",
      • pwd: "",
      • roles: [
      • { role: "",
      • db: "" } | "",
      • ...
      • ]
      • }
    • 语法说明:
      • user:用户名
      • pwd:密码
      • roles:
      • role:角色名
      • db:作用对象
      • role:root, readWrite,read
    • 实例1:
      • 创建超级管理员,管理所有数据库(必须在admin库中创建)
      • 登录mongodb:
        • mongo
        • use admin
        • db.createUser(
        • {
        • user: "root",
        • pwd: "root123",
        • roles: [ { role: "root", db: "admin" } ]
        • }
        • )
      • 登录验证用户创建是否成功:
        • mongo -uroot -proot123 192.168.8.5/admin
      • 禁止mongo无用户密码登录:
        • vim /mongodb/conf/mongo.conf
        • 添加:
          • security:
          • authorization: enabled
        • 重启mongodb
          • mongod -f /mongodb/conf/mongo.conf --shutdown
          • mongod -f /mongodb/conf/mongo.conf
        • 再次使用mongo登录 发现可以登录 但看不到任何数据库
      • 查看所有用户:
        • db.system.users.find().pretty()
    • 实例2;
      • 创建库管理用户:
        • 登录数据库:mongo -uroot -proot123 admin
        • use app (针对于app库创建管理用户)
        • db.createUser(
        • {
        • user: "adminapp",
        • pwd: "app123",
        • roles: [ { role: "dbAdmin", db: "app" } ]
        • }
        • )
        • 登录测试:mongo -uadminapp -papp123 192.168.8.10/app
    • 实例3:
      • 针对于app库创建app01用户,赋予读写权限:
        • use app
        • 单库完全控制账户
        • db.createUser(
        • {
        • user: "app01",
        • pwd: "app01",
        • roles: [ { role: "readWrite" , db: "app" } ]
        • }
        • )
      • 登录测试:mongo -uapp01 -papp01 192.168.8.10/app
        • 单库只读账户:
          • use app
          • db.createUser(
          • {
          • user: "app02",
          • pwd: "app02",
          • roles: [ { role: "read" , db: "app" } ]
          • }
          • )
          • mongo -uapp02 -papp02 192.168.8.10/app
    • 实例4:创建app数据库读写权限的用户并对test数据库具有读写权限:
      • 创建多库管理账户:
        • 用户app03针对于app具有读写权限,针对于test库同样具备读写权限
        • mongo -uroot -proot123 192.168.8.10/admin
        • use app
        • db.createUser(
        • {
        • user: "app03",
        • pwd: "app03",
        • roles: [ { role: "readWrite", db: "app" },
        • { role: "readWrite", db: "test" }]})
        • mongo -uapp03 -papp03 192.168.8.10/app
    • 实例5:
      • 查询mongodb中的用户信息:
        • mongo -uroot -proot123 192.168.8.10/admin
        • db.system.users.find().pretty()
      • 删除用户(需要以root用户登录到验证库)
        • mongo -uroot -proot123 192.168.8.10/admin
        • use app
        • db.dropUser("adminapp")
  • 相关阅读:
    MyBatis-Plus(二、常用注解)
    MqttAndroidClient 关闭日志 mq报错日志路径
    Laravel 框架数据库配置&构造器的查询.分块.聚合 ⑤
    PHP + Laravel + RabbitMQ + Redis 实现消息队列 (二) 消费队列在RabbitMQ和redis中的简单使用
    数组相关面试题
    GPT,GPT-2,GPT-3,InstructGPT的进化之路
    前端用a标签实现静态资源文件(excel/word/pdf)下载
    前端练习--W3C导航条
    03Redis-五大基本数据类型
    用友NCCloud2021.11 专项漏洞补丁列表
  • 原文地址:https://blog.csdn.net/2302_77503226/article/details/139603433