• mongodb 系列 ~ 用户权限


    一 基础
        1 mongodb本身启动是无认证的,是不安全的。
        2 mongodb开启验证是需要消耗资源的,这点对于短链接尤为明显
    二 验证机制
       1 MONGODB-CR v3.0以下
       2 SCRAM-SHA-1 v3.0以上mongodb
    三 研发建立模型
       一个spring 建立链接示例
        spring.data.mongodb.uri=mongodb://root(userName):root(password)@localhost(ip地址):27017(端口号)/gis(collections/数据库)?authSource=admin&authMechanism=SCRAM-SHA-1
    四 如何创建用户认证
       1 mongodb需要以auth参数方式启动
       2 创建具体用户->用户和角色绑定
           db.createUser( 
          {     user: "username",
          pwd: "password",
          roles: [ { role: "role", db: "dbname" }, { role: "role", db: "dbname" }]}
      3 Built-In Roles(内置常用角色,内置的一部分):
         read:只读账户 ->切换目标库
         readwrite:读写用户 ->切换目标库
         readAnyDatabase:超级只读用户->切换admin库
         readwriteAnyDatabase: 超级读写用户->切换admin库
         root:超级账户->切换admin库
    4 账户信息存储在admin.system.users集合中
    五 常用命令
       1 db.system.users.find().pretty();//查看所有用户
       2 db.system.users.remove({user:""});//从当前数据库删除指定用户
       3 db.removeUser(username);//删除指定用户,对于所有DB
    六 架构-用户
      1 对于 mongos集群,用户存储在全局admin库中
      2 对于 副本集集群,用户存储在各自primary的admin库中
    七  权限补充问题
    1 内置的role只能实现基于db级别的权限控制,如果需要控制collections,需要创建单独的role
    下面是一个案例
    db.createRole(
        { 
        role:"testrole",//角色名称
        privileges: [ // 权限集
            {
                resource:
                                {
                                        db:"jhr",
    collection:"" 
                                },
                            actions: [ "find", "insert", "remove","update" ] //角色可进行的操作,注意这里是一个数组
                    }
            ],
            roles: [] // 是否继承其他的角色,如果指定了其他角色那么新创建的角色自动继承对应其他角色的所有权限,该参数必须显示指定
        }
    )

  • 相关阅读:
    如何确定Kafka的分区数、key和consumer线程数
    Storm程序永久代内存溢出
    JVM堆内存相关的启动参数:年轻代、老年代和永久代的内存分配
    Git添加本地项目出现fatal: unable to get credential storage lock: File exists
    Kafka的通讯协议
    文件上传 数据对比
    jquery 弹出层
    XSS 简单理解之:AntiSamy
    XSS 简单理解
    超人说我最叼蝙蝠侠笑了 超级英雄战力排名
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/10795985.html
Copyright © 2020-2023  润新知