目录
一些mongo常见的数据库用户角色权限基础操作:包含数据库用户的创建、删除、查询。容器的鉴权开启、关闭。
0.前置操作
指定数据库
use admin
认证
db.auth('admin','123456')
1.数据库用户的查询
db.system.users.find().pretty()
2.数据库用户的删除
1)删除指定用户名的用户
db.system.users.remove({user:"用户名"})
2)删除指定id的用户
db.system.users.remove({_id:"用户id"})
3.数据库用户的创建
1) 创建普通账户
db.createUser({user:"logur",pwd:"pw123456",roles:[{role:"readWrite",db:"loggss"}]})
2) 创建管理员用户
db.createUser({user:"admin",pwd:"pw123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
4.其他
查看用户权限
db.getUser("logur")
查看权限能执行操作
db.getRole("readWrite", {showPrivileges:true})
授权(为账户分配role)
db.grantRolesToUser("logur",[{role:"readWrite",db:"dpsgss"}])
取消权限
db.revokeRolesFromUser("logur",[{role:"readWrite",db:"dpsgss"}])
修改密码(需要admin管理员权限)
db.changeUserPassword("logur","pw456")
删除用户(需要admin管理员权限)
db.dropUser("logur")
附录
数据库角色权限
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
容器启动相关
运行mongo容器
docker run -itd --name mongo --privileged=true -p 27017:27017 -v /home/mongo/27017/db:/data/db mongo --auth
/home/mongo/27017/db: 数据持久化存储路径
--auth开启权限认证
小贴士1: 如果忘记了密码,可以启动的时候去掉--auth,然后进入容器修改账号密码,修改完成后,重新将--auth加上然后启动容器。
小贴士2:容器化启动一定要做数据持久化存储路径哦
版权声明:本文为qq_33121481原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。