mongodb权限篇

1. 权限详解

内建角色:
    数据库用户角色: read、readWrite;
    数据库管理角色: dbAdmin、dbOwner、userAdmin;
    集群管理角色:   clusterAdmin、clusterManager、clusterMonitor、hostManager;
    备份恢复角色:   backup、restore;
    所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    超级用户角色:   root;  这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    内部角色:      __system;
角色说明:
    Read:        允许用户读取指定数据库
    readWrite:      允许用户读写指定数据库
    dbAdmin:       允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:      允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    dbOwner:      允许在当前DB中执行任意操作
    readAnyDatabase:      赋予用户所有数据库的读权限,只在admin数据库中可用
    readWriteAnyDatabase:      赋予用户所有数据库的读写权限,只在admin数据库中可用
    userAdminAnyDatabase:    赋予用户所有数据库管理User的权限,只在admin数据库中可用
    dbAdminAnyDatabase:      赋予管理所有数据库的权限,只在admin数据库中可用
    root:       超级账号,超级权限,只在admin数据库中可用。
集群管理角色:
    clusterAdmin:      赋予管理集群的最高权限,只在admin数据库中可用
    clusterManager:       赋予管理和监控集群的权限
    clusterMonitor:         赋予监控集群的权限,对监控工具具有readonly的权限
    hostManager:       赋予管理Server

2.创建用户

show dbs          查看数据库
use dbname      进入数据库
show users        查看当前数据库用户权限
db.createUser(
    {
        user:"usertest",
        pwd:"passtest",
        roles:[  
            {role:"clusterAdmin", db:"admin" },         
            {role:"readAnyDatabase",db:"admin" }, 
            {role:"readWrite",db:"testDB" } 
        ]
    }
)                

3. 修改密码

方法1:
    db.changeUserPassword("usertest","changepass");
方法2:
    db.updateUser("usertest",{pwd:"changepass1"});

4. 修改权限

db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()

5. 删除用户

db.dropUser('usertest')
原文地址:https://www.cnblogs.com/wangrui38/p/10898128.html