MongoDB复制集安全认证
之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权限认证来保证复制集的安全捏?
先给大家看一下我在centos虚拟机上搭建的复制集
这和我之前的那篇博客上展示的不是同一个复制集,因为昨天我在原来那台虚拟机上瞎几把搞的时候改错了一个配置文件然后系统就GG了。。。。。于是今天我又重新装了一遍。
上面展示的五个文件夹分别是五个数据库的安装路径,文件夹名后面的数字是端口号。27017是priority最高的一个,27018、27019为普普通通的节点,27020为延时300秒的从节点,27021为投票节点。
那么要开启复制集的安全认证首先需要关闭全部节点,而且在此之前不应该对某个节点使用单机节点的认证方式,即不可以在某个节点的启动文件中配置auth=true且在该节点里创建用户。因为这样子做只适合单机节点,在复制集中这样做会导致该节点发现不了复制集中的其他节点,因为没有权限访问。复制集的安全认证需要通过配置keyfile文件的方式进行。
接下来我们需要在每个节点的安装路径下新建一个keyFile文件,文件中的具体内容其实就是一行字符串,但复制集对keyFile文件有所要求
1.内容:以base64编码集中中的字符进行编写,即字符串只能包含a-z、A-Z、+、/
2.长度不能超过1000字节
3.权限最多到600
那么如何高效且高逼格生成一个合适的keyFile文件呢?
有这样一个方法分享给大家,我们在mongo27017中执行下面的操作
这里需要注意一下在第一次输出的时候我们需要检查它输出的字符串中是否有不是baase64的字符。第二行命令是把上面生成的字符串输入到keyFile中。由于之前所说,复制集对keyFile的权限有要求,最多到600,所以我们需要
chmod 600 keyFile
1
然后我们把这个文件复制到其他节点的安装路径中。
然后我们到启动文件中配置参数
这里我们需要注意最后一个参数keyFile,其值为之前我们生成的keyFile文件的地址。由于我们配置了keyFile参数相当于就开启了安全认证,所以就不必在配置auth参数了。
最后我们再启动复制集,在主节点中创建用户,第一个创建的用户必须在admin库中创建,创建方式如下
之后不管在主节点还是从节点中,我们都需要在admin库中通过db.auth()进行认证
以上就是配置复制集安全认证的全部过程,后面我将为大家介绍如何通过nodejs连接复制集。
---------------------
本文来自 wopelo 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/wopelo/article/details/73004216?utm_source=copy
MongoDB复制集安全认证的更多相关文章
- mongoDB的复制集5----复制集安全(认证,用户,权限)
一.什么是认证 如何开启认证 1).auth=true(在配置文件里增加) 2).keyFile(建议添加到配置文件里) #如果设置了auth=true,但第一次没有创建用户就启动实例怎 ...
- mongodb复制集开启安全认证
之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权 ...
- mongodb副本集加分片集群安全认证使用账号密码登录
mongodb副本集加分片集群搭建网上资料有很多.粘贴一个写的比较好的.副本集加分片搭建 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用账号密码登录. 默认的mongodb是 ...
- MongoDB安全及身份认证
前面的话 本文将详细介绍MongoDB安全相关的内容 概述 MongoDB安全主要包括以下4个方面 1.物理隔离 系统不论设计的多么完善,在实施过程中,总会存在一些漏洞.如果能够把不安全的使用方与Mo ...
- mongodb 复制集
mongodb 复制集 复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写 ...
- MongoDB复制集的工作原理介绍(二)
复制集工作原理 1)数据复制原理 开启复制集后,主节点会在 local 库下生成一个集合叫 oplog.rs,这是一个有限集合,也就是大小是固定的.其中记录的是整个mongod实例一段时间内数据库的所 ...
- MongoDB复制原理
##mongodb复制(主从服务器数据备份, 一个主服务器可以有很多个从服务器) #mongodb的复制至少需要两个节点.其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据 ...
- Mongodb 集群加keyFile认证
介绍 自从远古计绳结开始,数据库的存储就注定了今天的地位和多样性,Nosql的出现更是解决了现有的关系型数据库无法解决的一些难题,对高性能,灵活度,扩展性,海量数据的问题.随之而出现的高速内存索引数据 ...
- MongoDB复制集与Raft协议异同点分析
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.日志复制流程: a.raft leader节点在接收client请求后,先将请求写到日志中,再将日志通过 ...
随机推荐
- python多线程(二)
原文:http://blog.sina.com.cn/s/blog_4b5039210100esc1.html 基础不必多讲,还是直接进入python. Python代码代码的执行由python虚拟机 ...
- STM32调试问题
1.JLINK V8 error:flash download failed - could not load file: Options for Target 'Targer 1'下的菜单下Outp ...
- 存code
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> us ...
- git 更新远程分支
使用git的时候,有时候会出现远端更新了一个分支,但是从本地想checkout一个远程分支时,会出现如下错误: fatal: git checkout: updating paths is incom ...
- Git checkout on a remote branch does not work
I believe this occurs when you are trying to checkout a remote branch that your local git repo is no ...
- BUPT复试专题—中序遍历序列(2013)
题目描述 给出一个序列,判断该序列是不是某二叉搜索树的中序遍历序列,如果是输出"Yes",否则输出"No".一颗带权二叉树是一颗二叉搜索树(二叉排序树),当且仅 ...
- VC++_错误 无法打开包括文件“glglut.h” No such file or directory 怎么办
在网上看到类似的问题,查找资料找到了解决方案,现整理如下,有些更改,好让自己多些印象,附原文网址:http://blog.csdn.net/bigloomy/article/details/62265 ...
- 哈理工2015 暑假训练赛 zoj 2976 Light Bulbs
MS Memory Limit:65536KB 64bit IO Format:%lld & %llu SubmitStatusid=14946">Practice ...
- gulp配置 - PC
初始化目录结构如下(图片看不清可以拖到桌面或者直接CTRL+鼠标滚轮进行观看) 开发环境示例: 上线环境示例: gulpfile.js(详解版) (2018-3-28)添加了scss处理(去除了les ...
- 时间格式 2016-08-15T16:00:00.000Z
我修改的时间是2016-08-16(转换成Date后默认为2016-08-16 00:00:00),而我得到的时间却是2016-08-15T16:00:00.000Z 联想到我们当前的时区是+8区 ...