之前我有一篇博客写的是“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复制集安全认证的更多相关文章

  1. mongoDB的复制集5----复制集安全(认证,用户,权限)

    一.什么是认证  如何开启认证    1).auth=true(在配置文件里增加)    2).keyFile(建议添加到配置文件里) #如果设置了auth=true,但第一次没有创建用户就启动实例怎 ...

  2. mongodb复制集开启安全认证

    之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权 ...

  3. mongodb副本集加分片集群安全认证使用账号密码登录

    mongodb副本集加分片集群搭建网上资料有很多.粘贴一个写的比较好的.副本集加分片搭建 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用账号密码登录. 默认的mongodb是 ...

  4. MongoDB安全及身份认证

    前面的话 本文将详细介绍MongoDB安全相关的内容 概述 MongoDB安全主要包括以下4个方面 1.物理隔离 系统不论设计的多么完善,在实施过程中,总会存在一些漏洞.如果能够把不安全的使用方与Mo ...

  5. mongodb 复制集

    mongodb 复制集 复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写 ...

  6. MongoDB复制集的工作原理介绍(二)

    复制集工作原理 1)数据复制原理 开启复制集后,主节点会在 local 库下生成一个集合叫 oplog.rs,这是一个有限集合,也就是大小是固定的.其中记录的是整个mongod实例一段时间内数据库的所 ...

  7. MongoDB复制原理

    ##mongodb复制(主从服务器数据备份, 一个主服务器可以有很多个从服务器) #mongodb的复制至少需要两个节点.其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据 ...

  8. Mongodb 集群加keyFile认证

    介绍 自从远古计绳结开始,数据库的存储就注定了今天的地位和多样性,Nosql的出现更是解决了现有的关系型数据库无法解决的一些难题,对高性能,灵活度,扩展性,海量数据的问题.随之而出现的高速内存索引数据 ...

  9. MongoDB复制集与Raft协议异同点分析

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.日志复制流程: a.raft leader节点在接收client请求后,先将请求写到日志中,再将日志通过 ...

随机推荐

  1. MySQL什么时候会使用内部临时表?

    1.union执行过程 首先我们创建一个表t1 create table t1(id int primary key, a int, b int, index(a)); delimiter ;; cr ...

  2. CDOJ_844 程序设计竞赛

    原题地址:http://acm.uestc.edu.cn/#/problem/show/844 "你动规无力,图论不稳,数据结构松散,贪心迟钝,没一样像样的,就你还想和我同台竞技,做你的美梦 ...

  3. go语言学习之路五:Go语言内存分配机制make&new

    Go有两种分配内存的机制,规则很简单,下面来简单介绍一下.1.new函数New()函数可以给一个值类型的数据分配内存(不知道什么是值类型请前往切片那一部分),调用成功后返回一个初始化的内存块指针,同时 ...

  4. spring security原理图及其解释

    用户发出订单修改页面的请求,Access Decision Manager进行拦截,然后对比用户的授权和次页面需要的授权是不是有重合的部分,如果有重合的部分,那面页面就授权成功,如果失败就通知用户. ...

  5. JavaScript 层

    代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--& ...

  6. Linux学习系列之Iptables

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分.可以直接配置,也可以通过许多前端和图形界面配置. 语法 iptables(选项)(参数) 选项 -t<表&g ...

  7. android studio——Could not find method externalNativeBuild()

    gradle同步工程时出现错误 Error:(36, 0) Could not find method externalNativeBuild() for arguments [build_cazi7 ...

  8. csu1116 Kingdoms 最小生成树-枚举状态

    题目链接: csu 1116 题意: 有一幅双向图连接N个城市(标号1~n,1表示首都)  每一个城市有一个价值W. 地震摧毁了全部道路,现给出可修复的m条道路并给出修复每条道路所需的费用 问在总费用 ...

  9. Hdu 4274 Spy&#39;s Work

    Spy's Work Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. armel、armhf和arm64

    1 这些名词是什么的缩写 1.1 armel 是arm eabi little endian的缩写.eabi是软浮点二进制接口,这里的e是embeded,是对于嵌入式设备而言. 1.2 armhf 是 ...