MongoDB学习总结(五) —— 安全认证
作为数据库软件,我们要确保数据的安全,不是谁都可以访问的,所以mongodb也像其他的数据库软件一样可以采用用户验证的方法,
mongodb 3.0之前的版本提供了addUser方法向不同的数据库添加可信任的用户,mongodb 3.0开始之后的版本则改成了createUser方法,
我这里用的最新的版本,所以需要使用createUser方法。
下面我们重新建立一个mongodb数据库。同样以windows服务的形式开启。
> 创建用户 |
服务创建成功并且启动成功,我们开启客户端。使用createUser创建用户。
因为createUser方法与之前addUser方法差别很大,创建用户需要添加不同的角色权限。
这里注意一点就是在admin数据库中添加用户是超级用户,也叫数据库管理员,它可以操作任何数据库。
具体权限有以下:
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限。
下面我们通过简单的实例介绍一下。
上面我们创建了admin超级用户"super"以及product集合的用户"derek",并且具备读写及管理的权限。
> 开启服务验证 |
下面我们开启服务的用户验证模式,使用--auth参数。
我们开启了服务验证模式,下面我们看下实例。
我们看到没有验证之前,我们无法对product集合进行相应的操作,所以我们通过db.auth方法来进行验证,结果返回1表示验证通过,然后就可以对集合进行操作了。
当我们切换到admin的超级用户时,我们可以对任意集合进行操作。
以上是简单的建立了两个用户,上面介绍MongoDB 3.0开始之后建立用户包含的很多中角色role,根据概念很好理解,大家根据需求可以自己尝试下,我在这里就不一一列举了。
另外查询有哪些用户,用db.system.users.find()命令。如果需要删除用户则使用db.system.users.remove({name,value})。
最新文章
- 完美解决,浏览器下拉显示网址问题 | 完美解决,使用原生 scroll 写下拉刷新
- Java程序性能优化——让你的java程序更快、更稳定
- java中String的一些方法
- sql常见的面试题
- 【转】C# 中的委托和事件
- MFC中添加用户自定义消息
- tyvj1014 - 乘法游戏 ——记忆化搜索DP
- s3cmd的安装与使用
- 服务器端启动soket多线程
- C#HttpWebResponse请求常见的状态码
- 03(1) Gaussians,GMMs基础
- AB PLC分类
- Oracle查看存储过程最后编辑时间
- Shell 批量修改主机 用户密码
- axios封装get方法和post方法
- 《JavaScript高级程序设计》笔记:JavaScript简介(一)
- Go学习笔记(一)安装Go语言环境
- python入门第二篇
- conEmu的使用笔记
- kernel dump Analysis