Mongo用户权限设置摘录

创建用户

db.createUser({user:'test',pwd:'123456',roles:[{role:'readWrite',db:'unittest'}]})

db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]});

其中role:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色,具体可取如下值:

角色分类及权限

数据库用户角色

read,允许用户读取指定数据库

readWrite,允许用户读写指定数据库

数据库管理角色

dbAdmin,允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

dbOwner(间接系统超级用户)角色 , readWrite, dbAdmin,userAdmin的功能

userAdmin(间接系统超级用户) , 允许用户向system.users集合写入,可以向指定数据库里创建、删除和管理用户、变更数据 

集群管理角色

clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限

clusterManager集群管理 , 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限

clusterMonitor,集群监控 

hostManager

备份恢复角色

backup,在进行备份时可单独指定的角色,在db.createUser()方法中roles里面的db必须写成是admin库

restore,在进行恢复时可单独指定的角色,在db.createUser()方法中roles里面的db必须写成是admin库

所有数据库角色

readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase(间接系统超级用户)只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限

超级用户角色

root只在admin数据库中可用

内部角色

__system

较早版本使用addUser添加用户,现在最新版本不支持了;

验证用户

db.auth('test','123456')

查询用户

查询实例中所有用户信息:use admin; db.system.users.find().pretty() 

查询某一库下所有用户:use XXXX; show users

修改用户

db.updateUser(username,update,writeConcern)

username部分是必须要有的,添加需要更新的username

update部分里内容是可选,但必须有其中一项,例customData、roles、pwd

writeConcern部分是可选项

修改用户权限

db.updateUser("root",{roles:[{role:"readWriteAnyDatabase",db:"admin"}]})

修改用户密码

use XXX;db.changeUserPassword("tuser","123456")   注意:需在账号授权的库执行

删除用户

db.dropUser("test1")

你可能感兴趣的:(Mongo用户权限设置摘录)