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,是因为 ...
随机推荐
- golang文件读写三种方式——bufio,ioutil和os.create
package main import ( "bufio" "fmt" "io/ioutil" "os" ) func ...
- B5248 [2018多省省队联测]一双木棋 状压dp
这个题当时划水,得了二十分,现在来整一整. 这个题用状压来压缩边界线,然后通过记忆化搜索进行dp.我们可以观察到,其实每次转移,就是把一个1向左移一位.最后的状态设为0. 这其中还要有一个变量来记录谁 ...
- 复习--二叉树&&树
树是一种很常用的数据结构,日后的学习中会经常碰到运用树的知识. //构造二叉树#include<cstdio> #include<iostream> #include<a ...
- Organize Your Train part II(hash)
http://poj.org/problem?id=3007 第一次用STL做的,TLE了,自己构造字符串哈希函数才可以.. TLE代码: #include <cstdio> #inclu ...
- thinkphp的ip地址定位
在WEB应用中,根据IP地址定位和记录相关访问日志也是非常常见的需求,在ThinkPHP中你可以轻松的实现IP地址获取和定位. 获取扩展类库 可以在官网的http://www.thinkphp.cn/ ...
- compare正序与逆序
//list:在数据查询出来的Record集合 //juli:是需要比较的字段 //实现一个Comparator接口 //后面减去前面是正序 前面减去后面是倒叙 //我这里做的一个距离排序 R ...
- TCP/IP详解(一)
SYN中的MSS选项是告诉对端,本端在本地连接的每个TCP分节中愿意接收的最大数据量.发送端TCP使用接收端的MSS值作为发送分节的最大大小. TCP半关闭使用的情况较少,可用于通知对端本端数据已输入 ...
- BZOJ 4565 状压DP
思路: f[i][j][S]表示从i到j压成S状态 j-m是k-1的倍数 $f[i][j][S<<1]=max(f[i][j][S<<1],f[i][m-1][S]+f[m][ ...
- B - Bit++
Problem description The classic programming language of Bitland is Bit++. This language is so peculi ...
- js,jquery中.each()方法遍历如何终止循环
用.each()方法遍历节点的时候,用“return false”只能终止当前循环并跳入下一次循环,并不能终止所有循环.代码如下: $(".days").each(function ...