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入门示例程序
该实例是raspi和dsp电机运动控制板的串口uart通信: import serial class SerialHandler(): ''' raspi serial for communicati ...
- spring工具类获取bean
import org.springframework.web.context.ContextLoader; import org.springframework.web.context.WebAppl ...
- 管理weblogic服务的启动和停止
2012-11-10 12:58 26036人阅读 评论(4) 收藏 举报 分类: WebLogic(10) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 介绍 Weblog ...
- 最大熵推导LR
http://www.win-vector.com/dfiles/LogisticRegressionMaxEnt.pdf https://www.zhihu.com/question/2409455 ...
- Deleting array elements in JavaScript - delete vs splice
javascript 数组中删除元素用 array.splice(start, deleteCount);这个方法. ----------------------------------------- ...
- C#面向对象 结构体和类的应用
- C#语言 循环语句
//Console.Write("请输入关卡数:"); //int a = int.Parse(Console.ReadLine()); //int s = 0; //if (a ...
- Java字符串String 集合的迭代器
Java字符串String 我们知道Java的字符窜是Immutable(不可变)的,一旦创建就不能更改其内容了:平常我们对字符串的操作是最多的,其实对字符串的操作,返回的字符串都是新建的字符串对象, ...
- register_shutdown_function函数详解
设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...
- sed 修连接文件,有坑
-bash-4.1# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Aug 15 2014 /etc/rc.local -> rc.d/rc.loc ...