安全和认证

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--安全的更多相关文章

  1. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  2. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  3. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  4. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  5. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  6. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

  8. MongoDB系列(一):简介及安装

    什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...

  9. [原]分享一下我和MongoDB与Redis那些事

    缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...

  10. 用MongoDB分析合肥餐饮业

    看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...

随机推荐

  1. springboot 异常: Requested bean is currently in creation: Is there an unresolvable circular reference?

    2018-07-31 11:56:18.812 WARN 10316 --- [ main] ConfigServletWebServerApplicationContext : Exception ...

  2. Palindrome(dp)

    http://poj.org/problem?id=1159 题意:给定一个字符,问最少插入多少字符,使该字符串变成回文字符串. 思路:设原字符串序列为X,其逆字符串为Y,则最少插入的字符数=leng ...

  3. JavaScript在表格中模拟搜索多关键词搜索和筛选

    模拟搜索需要实现以下功能: 1.用户的模糊搜索不区分大小写,需要小写字母匹配同样可以匹配到该字母的大写单词. 2.多关键词模糊搜索,假设用户关键词以空格分隔,在关键词不完整的情况下仍然可以匹配到包含该 ...

  4. HDU3085 Nightmare Ⅱ

    题目: Last night, little erriyue had a horrible nightmare. He dreamed that he and his girl friend were ...

  5. NYOJ999 师傅又被妖怪抓走了

    只记得当下的眼疼 , ok 各种数据也试了 , 就是 他娘的不对 , 我也是醉了 . 也是日了最野的狗 附上日了哮天犬的代码 , 这个题 先放放, 一段时间后再试试 , 明天开始状态压缩吧 .为期两天 ...

  6. Tour UVA - 1347

    John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane and starts vi ...

  7. span标签对于margin-top,margin-bottom无效,但是margin-left,margin-right却是有效的。

    首先,span是行内元素,是没有宽高的. 我们来做个简单的布局 <div> <span>内容内容内容内容内容内容内容内容</span> </div> 页 ...

  8. MyEclipse创建SSH项目(Java web由maven管理)

    JavaEE后台开发,MyEclipse创建SSH项目,MyEclipse创建Java web 由maven管理的SSH项目. Demo工程源码github地址 1.创建SSH项目 1.创建web工程 ...

  9. for 循环练习题(2)

    一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米 var x=0.0001; for(var a=1;true;a++){ x=x*2; if (x>8848) { ...

  10. 【sqli-labs】 less23 Error based - strip comments (GET型基于错误的去除注释的注入)

    . 加单引号报错 加# http://localhost/sqli-labs-master/Less-23/?id=1'%23 错误没有改变,推测过滤了# 查看源码发现# -- 都被替换掉了 那么可用 ...