文章目录
安全访问控制
新建mongodb用户
- 在虚拟机中控制mongodb,并在admin数据库中新建用户
db.createUser({user:"taotao",pwd:passwordPrompt(),roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
修改配置文件开启权限访问
vi /opt/servers/mongodb_demo/mongodb/conf/mongod.conf
security:
authorization: enabled
重启mongodb服务
这里我们重启服务使用重启虚拟机方式(比较方便)
启动
mongod -f /opt/servers/mongodb_demo/mongodb/conf/mongod.conf
权限说明(PPT)
尝试直接访问数据库
数据库为空,因为我们设置了用户权限,必须登录才能正常访问数据库
直接切换admin进行控制,登录用户taotao
- 注意,需要先使用指定库,再进行登录操作
use admin
db.auth("taotao","12345")
创建基于管理员用户的“子用户”
创建一个基于Admin-taotao的用户taotaouser1,该用户只有admin数据库的read权限
db.createUser({user:"taotaouser",pwd:"12345",roles:[{role:"read",db:"admin"}]})
检查是否创建成功
show users
查看指定用户信息
db.getUser("taotaouser")
尝试使用子用户进行数据库操作
向集合中插入数据
向mycollection集合插入数据
db.mycollection.insert({"a":1,"b":2})
权限不足
使用admin用户给taotaouser赋予write权限
db.grantRolesToUser("taotaouser",[{role:"readWrite",db:"admin"}])
再次尝试使用taotaouser用户添加数据
写数据成功
其他权限、功能赋予或删除[图文]
问题(多个role,代表担任多个角色)
表示此用户既可以读,又可以读写
版权归原作者 鬼鬼骑士 所有, 如有侵权,请联系我们删除。