zoukankan      html  css  js  c++  java
  • MongoDB用户,角色管理 --- MongoDB基础用法(三)

    用户管理

    用户创建

    MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。
    MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持续的用户维护。
    创建管理员用户
    要在MongoDB部署中创建用户,请连接到部署,然后使用db.createUser()方法或createUser命令添加用户。

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

    修改密码

    db.changeUserPassword("username","newpassword")
    

    用户删除

    db.dropUser("root")
    

    用户认证

    db.auth('user','pwd')
    

    用户查询

    db.system.users.find()
    

    删除用户角色

    db.revokeRolesFromUser(
        "usename",
        [
          { role: "readWrite", db: "accounts" }
        ]
    )
    

    添加用户角色

    db.grantRolesToUser(
        "reportsUser",
        [
          { role: "read", db: "accounts" }
        ]
    )
    

    角色管理

    自定义角色保存在admin数据库system.roles集合中

    添加角色

    db.createRole(
       {
      role: "<name>",
      privileges: [
         {
             resource: { db: "myApp", collection: "" },
             actions: [ "insert", "dbStats", "collStats", "compact" ]
          }
         ...
      ],
      roles: [
         { role: "<role>", db: "<database>" } | "<role>",
          ...
      ],
      authenticationRestrictions: [
        {
          clientSource: ["<IP>" | "<CIDR range>", ...],
          serverAddress: ["<IP>" | "<CIDR range>", ...]
        },
        ...
      ]
    }
    )
    

    查看角色

    db.getRole("rolename",{showPrivileges:true})
    

    删除角色

    db.dropRole("rolename")
    

    角色权限

    角色 权限
    read 允许用户读取指定数据库
    readWrite 允许用户读写指定数据库
    dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    dbOwner 允许在当前DB中执行任意操作
    useradmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    readAnyDatabase 赋予用户所有数据库的读权限,只在admin数据库中可用
    readWriteAnyDatabase 赋予用户所有数据库的读写权限,只在admin数据库中可用
    userAdminAnyDatabase 赋予用户所有数据库管理User的权限,只在admin数据库中可用
    dbAdminAnyDatabase 赋予管理所有数据库的权限,只在admin数据库中可用
    root 超级账号,超级权限,只在admin数据库中可用。
    clusterAdmin 赋予管理集群的最高权限,只在admin数据库中可用
    clusterManager 赋予管理和监控集群的权限
    clusterMonitor 赋予监控集群的权限,对监控工具具有readonly的权限
    hostManager 赋予管理Server

    更多:https://docs.mongodb.com/manual/core/security-user-defined-roles/

    你一定会喜欢那个因为喜欢她而发光的自己!
    个人博客:http://www.yanghelong.top
  • 相关阅读:
    kvm虚拟化
    kvm虚拟机管理
    认识佛教
    【书籍推荐】《自我观察:第四道入门手册》爱自己
    [推荐] 自我观察的四个基本原则
    只要你真会念,念到不起心、不动念、不分别、不执着,六根接触六尘境界就是修行
    胡小林老师最新答问(全两集)2017年3月9日发布
    蔡礼旭老师:如何经营幸福生活(武汉万人论坛)
    新视频】蔡礼旭老师:学圣贤教诲 改人生命运(2013年北京论坛)附下载
    【论坛先河,载入史册】陈大惠、钟茂森、胡小林、蔡礼旭、彭鑫老师同台答问(全三集)
  • 原文地址:https://www.cnblogs.com/zzu-general/p/13896102.html
Copyright © 2011-2022 走看看