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})。

时间: 2024-08-04 05:07:58

MongoDB学习总结(五) —— 安全认证的相关文章

5、MongoDB学习之安全与认证

每个MongoDB库可以有许多用户,只有开启了用户并且有对于的库操作权限才能读写操作,MongoDB安全机制为:1.首先要建立一个超级用户,可以由超级用户认证后再创建对应库的用户 目标: 1.创建一个超级用户进行管理(包括创建新用户) 2.超级用户认证后再创建普通用户用于读写对应的数据库 版本: > db.version() 3.4.7 一.使用admin数据库 > use admin switched to db admin > show collections 二.创建超级用户 &g

MongoDB学习笔记五—查询

数据准备 { "goods_id" : 1, "goods_name" : "KD876", "createTime" : ISODate("2016-12-21T11:19:39.010Z") } { "goods_id" : "4", "goods_name" : "诺基亚N85原装充电器", "createTim

MongoDB学习(五)Linux环境安装MongoDB

一.   下载 从http://www.mongodb.org/downloads地址中下载:mongodb-linux-x86_64-2.4.11.tar 二.  安装 1>设置mongoDB目录[[email protected] home]#cd /home/apps      附:centOS下创建目录命令  [[email protected] home]#mkdir -p /home/apps 2>将文件mongodb-linux-x86_64-2.4.11.tar上传至/home

Java Web学习(五)认证机制三巨头--session、cookie、token

一.引言 动态网页兴起后,会话管理变成开发者需要考虑的一个问题,由于HTTP请求是无状态的,为了区分每个用户,此时引入了会话标识(session id)的概念,但是存储机制也会产生不同的问题,下面就详细分析一下三种机制的优缺点以及使用方式. 二.session 定义:会话,打开web应用时产生,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应. 创建:session在访问tomcat服务器时调用HttpServletRequest.getSession(

mongodb学习(五) 查询

1. 按条件查询: db.users.find({"name":"MM1"}) 2.find的第二个参数可以指定要返回的字段:这里1 表示要显示的字段,0 表示要剔除的字段 db.users.find({"name":"MM1"},{"name":1,"age":1}) db.users.find({"name":"MM1"},{"nam

MongoDB学习总结(二)

前言:学习札记! MongoDB学习总结(二) 1.  安装.初识 之前写过一篇MongoDB的快速上手文章,里边详细的讲了如何安装.启动MongoDB,这里就不再累述安装过程,简单介绍一下Mongodb的基本操作. 打开命令行窗口,输入“mongo”命令,默认会连接到test数据库. l  Insert db.person.insert({"name":"Olive","age":18}) db.person.insert({"nam

[Spring Data MongoDB]学习笔记--建立数据库的连接

1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoDbFactory { DB getDb() throws DataAccessException; DB getDb(String dbName) throws DataAccessException; } 然后我们可以继续用MongoDbFactory来创建MongoTemplate的实例. pu

mongodb学习笔记系列一

一.简介和安装 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017 mongodb非常的占磁盘空间, 刚启动后要占3-4G左右,--smallfiles 二.基本命令 1.登录mongodb client /use/local/mongo 2.查看当前数据库 show databases; show dbs; 两个可能 3.admin是和管理有关的库,local 是放schema有关

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的