MongoDB的安全校验
一、MongoDB安全校验的重要性
每个MongoDB实例中的数据库都可以有许多用户。如果没有开启安全校验,限制用户权限,则每个进到数据库的用户都能任意的对数据库数据进行读,写甚至是读写操作。这样的场景在实际的应用中是非常危险的,容易导致数据丢失,误删等事故,所以数据库服务开启安全校验,十分有必要。
二、MongoDB如何开启安全校验
一旦MongoDB开启了安全检查,则必须是数据库认证用户才有权力对数据进行读,写或读写操作。在进行安全检查之前,一定要至少有一个管理员账号,这是为什么呢?因为只有管理员可以读写任何的数据库,执行特定的管理命令,如为某个数据库添加特定用户,限制读写权限等。
如下图,为admin数据库添加了超级管理员root,密码为1234,方便在数据库开启安全检查后,使用该用户登录后能够进行数据库的管理,添加用户的语法为
db.addUser("用户名","密码",是否只读true|false)
然后为kaiye数据库添加了两个用户,语法分别为
db.addUser("haha","123"):haha用户对kaiye数据库具有读写权限
db.addUser("hehe","123",true):hehe用户对kaiye数据库只有读权限
重启服务端,并在开启服务端命令后面添加 --auth,就启动了MongoDB的安全校验了。
mongod --dbpath=C:\\mymongodb --port 27017 --auth
在服务端开启安全校验后,分别登录haha和hehe用户,进行数据的读写操作,在show collections时,会报无权限的异常。
此时需要使用数据库的用户进行认证登录,语法:db.auth("用户名","密码"),登录刚才添加的hehe用户(添加了只读权限)后,发现只能对数据进行检索查询,却不能进行数据的插入操作,这是因为刚才在为kaiye数据库添加hehe用户时,将addUser()函数的第三个值设置成了true,也就是该用户只有只读权限,所以无法进行写操作。
切换用户,即登录同时具有读写权限的haha用户,会发现既能进行find操作,也能进行insert操作。
MongoDB的安全校验的更多相关文章
- MongoDB for OPS 04:备份恢复
写在前面的话 和 MySQL 一样,mongodb 也是需要将数据进行备份的,毕竟天有不测风云,谁也不知道哪天机器就炸了. 备份恢复 mongodb 提供了两种备份恢复手段:mongoexport / ...
- mongodb C#连接报错 Invalid credentials for database 'admin'
这2天学习mongodb3.2.9,用户设置好了,结果用C#查询的时候报错了,看字面意思是用户验证没通过,但是我用shell是完全没有问题的,后来网上搜了下,发现原来是我用的是旧驱动,旧驱动用的是旧的 ...
- WebFlux04 SpringBootWebFlux集成MongoDB之Windows版本、WebFlux实现CRUD、WebFlux实现JPA、参数校验
1 下载并安装MongoDB 1.1 MongoDB官网 1.2 下载 solutions -> download center 1.3 安装 双击进入安装即可 1.3.1 安装时常见bug01 ...
- MongoDB学习day09--Mongoose数据校验
一.Mongoose检验参数 required : 表示这个数据必须传入max: 用于 Number 类型数据, 最大值 min: 用于 Number 类型数据, 最小值 enum:枚举类型, 要求数 ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- sqlyog导出json数据格式支持mysql数据转存mongodb
<!-------------知识的力量是无限的(当然肯定还有更简单的方法)-----------!> 当我考虑将省市区三级联动数据从mysql转入mongodb时遇到了网上无直接插入mo ...
- 使用aggregate在MongoDB中查找重复的数据记录
我们知道,MongoDB属于文档型数据库,其存储的文档类型都是JSON对象.正是由于这一特性,我们在Node.js中会经常使用MongoDB进行数据的存取.但由于Node.js是异步执行的,这就导致我 ...
- mongodb在WEB开发中的应用与实践
一.mongodb是什么? 一套高性能.易开发的文档型数据库.他使用键值对形式存放数据,能够存放包括字符串.数组.数据序列.图片.视频等在内的大多数数据文档.MongoDB完善的设计,搞笑的可编程性使 ...
- Laravel 校验规则之字段值唯一性校验
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] laravel validator unique 'name' => 'required|unique:test,disp ...
随机推荐
- 隐马尔科夫模型(hidden Markov model, HMM)
- MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...
- POST GET 请求示例
HTTP GET 请求代码: HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com ...
- Java中arraylist和linkedlist源代码分析与性能比較
Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arra ...
- Effective C++ Item 9 Never call virtual functions during constrution or destruction
Because such calls would never go to a more derived class than that of currently executing construto ...
- 剑指 offer set 13 把数组排成最小的数
总结 1. 给定 3, 32, 321 将他们组合成最小的数, 比如 321323 2. 3 -> 333 32 -> 322 321 -> 321 然后再排序
- iOS:友盟SDK第三方登录 分享及友盟统计的使用
本文转载至 http://www.it165.net/pro/html/201503/37101.html Tag标签:第三方 01.#import "UMSocial.h" ...
- Course Selection CodeChef - RIN
All submissions for this problem are available. Read problems statements in Mandarin Chineseand Russ ...
- 【黑金原创教程】【TimeQuest】【第七章】供源时钟与其他
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- node.js创建server服务---sublime 的node及typescript环境配置
一.初始环境搭建 mkdir server //创建server文件夹 cd server //进入到创建的文件夹目录下 npm init -y //生成含有默认配置的package.json文件 n ...