MongoDB入门系列(四):权限管理
2018-03-02 09:04
309 查看
一、概述
本篇文章主要介绍如何创建用户和角色相关概念,同时对角色的添加和删除做了相关介绍。版本:3.6.2
二、角色相关概念
1.数据库用户角色
read:该角色拥有数据的只读权限,系统集合以及system.indexes,system.js,system.namespaces集合除外。readWrite:该角色拥有对应数据库的读写权限,系统集合和system.js集合除外。
2.数据库管理角色
dbAdmin:该角色拥有指定数据库数据库管理权限,包括 system.indexes, system.namespaces, system.profile集合的操作权限。该角色不拥有所有非系统集合的读权限。dbOwner:该角色拥有指定数据库的所有权限,该角色包括:readWrite、dbAdmin、userAdmin。
userAdmin:该角色拥有指定数据库用户和角色的管理权限。包括创建用户等。
3.群集管理角色
clusterAdmin:该角色拥有群集的所有权限。该角色包含clusterManager,clusterMonitor,hostManager 角色权限。同时还要删除数据库的权限。clusterManager:该角色拥有群集的管理和监控权限,包括对local、config数据库的访问权限。同时该角色拥有分片和复制集的管理权限。
clusterMonitor:该角色拥有群集的监控权限。
hostManager:该角色拥有群集的监控和服务管理权限。
注意:这些角色只能在Admin数据库下创建
4.备份还原角色
backup:该角色拥有备份数据的权限。restore:该角色拥有还原备份数据的权限。
注意:这些角色只能在Admin数据库下创建
5.所有数据库角色
该分类下面的角色权限和数据库角色权限一样,区别在于它拥有的是所有数据库的权限而不是指定数据库下的权限。但是不拥有system.*相关集合、local、config数据库的权限。readAnyDatabase
readWriteAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase
注意:这些角色只能在Admin数据库下创建
6.超级权限角色
root:该角色拥有所有权限,该角色包含readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin roles, restore, and backup角色。注意:该角色只能在创建在Admin库中
7.内部角色
__system:该角色为系统内部角色,比如复制集成员、mongos使用。三、创建用户
1.创建用户
在admin中创建root角色用户use admin; db.createUser({ user:"dba", pwd:"dba", roles:[{role:"root",db:"admin"}]});
2.删除用户
use admin; db.system.users.remove({"user":"root","db":"admin"})
注意:创建和删除用户都要在对应的数据库下。
四、向用户添加和删除角色
1.创建只读用户
切换到test数据库下创建read角色用户use test db.createUser( { user:"test", pwd:"test", roles:[{role:"read",db:"test"} ] } );
2.验证权限
提示没有权限插入集合。
3.添加角色权限
use admin ---需要切换到root角色用户才能修改system相关的集合 db.auth("dba","dba") db.system.users.update( {"user":"test","db":"test"}, {$push:{"roles":{"role":"readWrite","db":"test"}}} );
注意:用户数据库权限虽然是在用户数据库创建,但是所有的用户信息都存储在admin数据库下的system.users集合中。
再次使用test用户执行插入测试
已经测试成功
4.删除角色权限
---切换到admin库 use admin; ---验证权限 db.auth("dba","dba") ---更新用户表,删除test用户readWrite角色 db.system.users.update( {"user":"test","db":"test"}, {$pull:{"roles":{"role":"readWrite"}}} );
test用户readWrite角色已删除
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。 《欢迎交流讨论》 |
相关文章推荐
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)
- thinkphp集成系列之rbac的升级版auth权限管理系统demo
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(22)-为用户设置角色
- 【Jenkins系列之五】Jenins安全管理和权限控制
- MySQL系列:用户及权限管理
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(10)- VSS源代码管理
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明
- Linux系列教程(十七)——Linux权限管理之文件系统系统属性chattr权限和sudo命令
- RHCE系列之权限管理----ACL(访问控制列表)
- ASP.NET MVC+Nhibernate+bootcss实现权限管理系列[完全免费和开源] 序
- 「单点登录与权限管理」系列概述
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明