参看网址:http://www.cnblogs.com/zhoujinyi/p/4610050.html
上面链接讲述的原理非常详细
mongo版本:3.6
常用操作:
##查看当前库下所有用户
show users
##查看所有系统中用户,尽量别直接修改此表
db.system.users.find().pretty()
#增加用户:
db.createUser(
... {
... user: "1352",
... pwd: "135137846",
... roles: [
... { role: "read", db: "test" }
... ]
... }
... )
#删除用户:
db.dropUser("1354") #用户名有问题的话先删除在创建
##更新用户
db.updateUser( "1352",
{
roles : [
{ role : "readWrite", db : "test"},
{"role" : "dbAdmin","db" : "test"}
]
}
)
##更改密码
db.changeUserPassword("用户名", "密码")
##授予权限
db.grantRolesToUser("1352",[{ role : "userAdmin", db : "test"}])
##撤销权限
db.revokeRolesFromUser("1352",[{ role : "userAdmin", db : "test"}])
##也可直接更新替换原有文档进行授权和撤销权限
db.updateUser( "1352",
{
roles : [
{ role : "readWrite", db : "test"},
{"role" : "dbAdmin","db" : "test"}
]
}
)
##可用的内嵌角色(roles)
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限