MongoDB 学习2 权限和分配
首先看这个权限图
前四个,只能针对单独的库设置,也就是你要给哪个用户哪个库的权限,就在这个库下设置。
6到9个,就是前四个的升级版,针对用户操作所有数据库的权限。
Root 就是超级管理员。
创建用户
打开mongo.exe
执行命令
show dbs 是查看当前库
use admin 是切换到admin库
show users 查看用户,这里没数据,表示还没有创建用户
输入命令
db.createUser({user:"liuyi",pwd:"123qweasd",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) 创建一个userAdminAnyDatabase权限的用户,这个用户可以管理其他用户。
这个时候再执行 show users ,就会有这个用户的信息了,这里不演示。
修改配置文件mongo.config,设置auth=true,重启mongodb服务,然后再次打开mongo窗体,发现
很明显,展示的内容都不一样了,执行show dbs,没有结果,说明确实需要验证。
首先切换到admin下,执行db.auth("liuyi","123qweasd");
显示1,表示验证通过,再就能继续像之前没有设置验证一样操作了。
修改权限
目前这个liuyi用户,只有操作其他用户的权限,自身是没有读写数据库的权限的,我们可以给他添加新的权限。
db.updateUser("liuyi",{"roles":[{"role":"userAdminAnyDatabase",db:"admin"},{"role":"readWriteAnyDatabase",db:"admin"},{"role":"dbAdminAnyDatabase",db:"admin"}]})
再查看一下
这样就ok了
当然,也可以改密码
db.updateUser("liuyi",{"pwd":“123456”}),这里我就不操作了。
删除用户
db.dropUser("name")
需要注意的是,操作其他用户的时候,要先用这个liuyi账户登录admin,获取到高级权限,再切换到你想操作的库下去操作相应的用户,因为不同的库用户名可以是一样的,所以要切换过去再操作。