上篇集群已经创建,现在加入认证。

1. 生成密钥文件
每个服务器上创建路径: 
mkdir -p /var/lib/mongo/auth

生成64字节的密钥文件
openssl rand -base64 64 > /var/lib/mongo/auth/keyfile.key

把密钥文件复制到集群中每一个结点上(路由结点,元配置结点,分片结点上都要有这个密钥文件)
scp /var/lib/mongo/auth/keyfile.key root@node2:/var/lib/mongo/auth
scp /var/lib/mongo/auth/keyfile.key root@node3:/var/lib/mongo/auth

把密钥文件的权限设置为600,owner为mongod(启动mongo实例的用户)
chown -R mongod:mongod /var/lib/mongo/auth
chmod 600 /var/lib/mongo/auth/keyfile.key
2. 创建集群用户
每个结点(每个分片结点,每个路由结点)上都要创建创建admin库的管理员用户
mongo 127.0.0.1:20000/admin

db.createUser(
        {
            user  : "admin",
            pwd   : "admin123456",
            roles : 
            [
                { role : "root", db : "admin" },
                { role : "clusterAdmin", db : "admin" }
            ]
        }
    )

创建业务库用户(这里是test),需要在每个结点(每个分片结点,每个路由结点)上都要创建用户
  use test
  db.createUser(
        {
            user  : "test",
            pwd   : "test123456",
            roles :
            [
                { role : "dbOwner", db : "test" }, 
                { role : "clusterAdmin", db : "admin" } 
            ]
        }
    )

3. 开启集群认证
在每个结点(路由结点,元配置结点,分片结点)的配置文件中加入keyFile的配置项; 
security:
  keyFile: /var/lib/mongo/auth/keyfile.key

在每个元配置结点和分片结点(即除了mongos结点)的配置文件中加入authorization配置项
security:
  authorization: enabled

关闭集群
按照路由结点、分片结点、配置结点顺序,依次关闭各结点服务:
systemctl stop mongod-mongos
systemctl stop mongod-shard3
systemctl stop mongod-shard2
systemctl stop mongod-shard1
systemctl stop mongod-configsvr

重新启动集群
systemctl start mongod-configsvr
systemctl start mongod-shard1
systemctl start mongod-shard2
systemctl start mongod-shard3
systemctl start mongod-mongos

4. 验证集群的认证
mongo 127.0.0.1:20000/admin  
    
use admin
db.auth(“admin”, ” admin123456”)

查看分片状态
db.printShardingStatus()

use test
db.auth(“test”,”test123456”)

查看该库中的该表的集群状态
db.users.stats()
若发现里面最开始的sharded字段是true,则表示添加认证功能后的集群没有出现异常

mongodb3.6集群搭建:分片集群认证的更多相关文章

  1. MongoDB集群搭建-分片

    MongoDB集群搭建-分片 一.场景: 1,机器的磁盘不够用了.使用分片解决磁盘空间的问题. 2,单个mongod已经不能满足写数据的性能要求.通过分片让写压力分散到各个分片上面,使用分片服务器自身 ...

  2. MongoDB 搭建分片集群

    在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群.分片集群(S ...

  3. mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  4. mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  5. mongo 3.4分片集群系列之二:搭建分片集群--哈希分片

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  6. MongoDB Sharding(二) -- 搭建分片集群

    在上一篇文章中,我们基本了解了分片的概念,本文将着手实践,进行分片集群的搭建 首先我们再来了解一下分片集群的架构,分片集群由三部分构成: mongos:查询路由,在客户端程序和分片之间提供接口.本次实 ...

  7. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  8. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  9. MongoDB集群搭建-副本集

    MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...

随机推荐

  1. java 转载

    这几天忙于其他的事情,编程的习惯没有继续下去,偶然间看到了这篇文章,感觉收益颇丰,言归正传,下面即入主题 java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 n ...

  2. PMS---团队展示

    点我查看作业原题 [队名] PMS(一群pm) [拟做的团队项目描述] 基于监控场景的视频摘要与人车检测跟踪系统 A system, under monitor scene, for video su ...

  3. 16_常用API_第16天(正则表达式、Date、DateFormat、Calendar)_讲义

    今日内容介绍 1.正则表达式的定义及使用 2.Date类的用法 3.Calendar类的用法 ==========================================第一阶段======= ...

  4. FastReport 变量列表使用

    使用报表变量时,引用“frxVariables”单元. 变量定义在“TfrxVariable” 类: TfrxVariable = class(TCollectionItem) published p ...

  5. Js 中的原始值和引用值

    最近遇写 node.js 时到一个问题,把对象当赋值给数组成员时总是出错,比如下面的代码, var Arr = new Array(); var Obj = new Object(); for(var ...

  6. linux 搭建epel本地库,并定时同步

    1.安装rsyncyum -y install rsync.x86_64 2.同步epel至本地#http://mirrors.ustc.edu.cn/status/ 获取镜像库rsync路径mkdi ...

  7. GS7 使用IPV6的数据库的注册方法

    1. 首先保证 应用服务器和数据库服务器能够互相ping通 可以创建一个 bat 文件里面放上如下内容进行连接. start ping fe80::b0d4:::f3c5 -t start ping ...

  8. MachineLearning Exercise 7 : K-means Clustering and Principle Component Analysis

    findClosestCentroids.m m = size(X,); :m [value index] = min(sum((repmat(X(i,:),K,)-centroids).^,)); ...

  9. 打豪车应用:uber详细攻略(附100元优惠码)

    在嘀嘀打车和快的打车交战热闹的时候,美国的打车应用uber进入中国.与在美国以个人司机注册做 Uber 司机为主的模式不同,Uber 在中国采用与租车公司合作.由租车公司提供车辆和司机的模式,同时中文 ...

  10. Nginx4大模块——proxy、headers、upstream、stream

    一:ngx_http_proxy_module 反向代理( reverse proxy) 方式是指用代理服务器来接受 Internet 上的连接请求, 然后将请求转发给内部网络中的上游服务器, 并将从 ...