mongodb--安全
安全和认证
mongodb和redis比较像,安全部分依赖于其所存在的环境
一定要把mongodb放在一个可信的环境下去运行,mongodb只能被web服务器所访问,禁止开外网端口访问mongodb,外网本地的web服务器通过内网端口连接mongodb。
查看Mongoodb服务器状态的命令
db.runCommand({"serverStatus":1})
用户安全
创建admin用户,可以进行全局的数据库操作
//选中数据库
use admin
//创建用户
db.createUser(
{
user: "admin",
pwd: "12345678",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
]
}
)
创建其他数据库用户,只可以进行单个数据库的操作
use taobao
db.createUser(
{
user: "spike",
pwd: "spike",
roles: [ { role: "readWrite", db: "taobao" } ]
}
)
关闭mongodb的命令
//在客户端下
db.shutdownServer()
//在windows命令行下
tasklist | findstr "mon"
taskkill /F /PID 3296
//在Linux下
kill -2 PID," or kill -15 PID
数据库启用安全验证命令
mongod --dbpath C:\MongoDb\data\db -logpath C:\MongoDB\data\log\mongolog.log --auth
重新连接数据库,然后用账户名和密码登录
use admin //验证还是在admin中验证的,验证成功再切换到别的库
db.auth('spike','112358');
linux中防火墙的问题
在Linux中安装完mongodb后,使用程序连接mongodb进行写入,会发现无法进行写入,这是因为linux默认有防火墙,需用下面命令将防火墙关闭才能进行访问
sudo ufw disable
//在ubuntu中关闭防火墙的命令,使用这个命令后需要重启mongodb的服务,本办法就是重启服务器
总结户管理操作
首先启动mongodb的时候不加--auth选项,选择admin数据库,建立一个管理全局用户的管理员,mongoDB 没有super root,只有能管理用户的用户 userAdminAnyDatabase。
1、添加一个用户
db.addUser("name");
db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读
//要让用户认证生效,需要在启动mongo服务时,指定--auth选项,下次登录时,就需要认证了
2、数据库认证、安全模式
db.auth("userName", "123123");
3、显示当前所有用户
show users;
4、删除用户
db.removeUser("userName");
5、修改用户密码
db.changeUserPassword(用户名,新密码);
6、给用户添加权限
db.addUser({user:'guanli',pwd:'1111',roles:{'readWrite,dbAdmin'}});
//这些roles的单词可以在mongo的官网或者手册上查到
7、涉及到主从切片的权限的时候
在主从复制和切片里面,有些时候会遇到权限不够的问题,尝试使用下面的方法解决问题
db.createUser(
{
user: "spike",
pwd: "112358",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
{ role: "readWrite", db: "taobao" },
{ role: "read", db: "taobao" } ]
}
)
用管理员账户登录后选择其他数据库开始对数据库创建相应权限的用户
相关图片


mongodb--安全的更多相关文章
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- MongoDB系列(一):简介及安装
什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- 用MongoDB分析合肥餐饮业
看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...
随机推荐
- Android和H5交互-基础篇
hybrid App开发也不是什么新鲜事了,其中native和h5之间的交互则是必不可少的.Android中是如何和H5交互的? 1.webView加载页面 我们都知道在Android中是通过webV ...
- 在linux查看内存的大小
用free -m查看的结果: # free -m total used free shared buffers cached Mem: ...
- POJ 3264 线段树 ST
题意:给你一个数列,从中挑一段,问你这段数的最大值减最小值是多少. 思路:线段树. // by Sirius_Ren #include <cstdio> #include <algo ...
- # secure_link_module模块
作用 制定并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问 限制链接生效周期 首先检查nginx是否已安装模块 #nginx -V 输出nginx所有已安装模块,检查是否有ngx_http_ ...
- Java接口中的成员变量为什么必须声明为public static final?
我想对于每个Java程序员来说,接口都不陌生,接口中的方法也经常使用.而接口中的成员变量,就显得用得少一点,而对于成员变量为什么必须声明为public static final,可能就更不清楚了,而且 ...
- Android开发笔记(10)——使用Fragment传递
转载请注明:http://www.cnblogs.com/igoslly/p/6911165.html 由于最近废寝忘食地在开发App,没来得及及时做总结,没有用很高级的部件,勉强也使用一些功能完成了 ...
- 分类(Category)的本质 及其与类扩展(Extension) /继承(Inherit)的区别
1.分类的概念 分类是为了扩展系统类的方法而产生的一种方式,其作用就是在不修改原有类的基础上,为一个类扩展方法,最主要的是可以给系统类扩展我们自己定义的方法. 如何创建一个分类?↓↓ ()Cmd+N, ...
- 启动Mysql时,提示error 2002 的解决办法
故障描述 启动时提示ERROR 2002(HY000) 启动服务时,提示the server quit without updating PID file. 解决方法一: 1.由于mysql是卸载后重 ...
- 4星|《OKR实践指南》:老司机经验谈
OKR 实践指南:知乎任向晖.雷明灿作品 (知乎「一小时」系列) 作者所在的公司已经实施了OKR十个季度了.算是目前少有的OKR老司机.书中介绍的是作者的实践经验,在目前的OKR中文书中这本算是比较少 ...
- Boost-QT兼容问题:#define FUSION_HASH #
使用原始的MSVC10+QT48很长时间,需要把PCL升级到新的版本,不再使用自行编译的PCL1.7.2版本. 在使用MSVC2012的时候,使用MSVC12-的PCL1.8.0版本,出现了一个不大不 ...