mongodb 副本集加密码认证(keyFile认证)的简单方法


借鉴自:https://blog.csdn.net/pengjunlee/article/details/84101732

在测试环境中搭建 副本集 带密码认证的 简单步骤

1、安装,不介绍了

2、配置文件

节点1 , 文件名:mongodb.conf

dbpath = /usr/local/mongodb/data/db
logpath = /usr/local/mongodb/logs/mongodb.log
port = 27017
fork = true
logappend = false
bind_ip=0.0.0.0  #允许访问的ip地址
replSet=rs0  #集群编号
keyFile=/usr/local/mongodb/bin/keyfile

节点2,文件名:mongodb-dev.conf

dbpath = /usr/local/mongodb/data/db2
logpath = /usr/local/mongodb/logs/mongodb2.log
port = 27018
fork = true
logappend = false
bind_ip=0.0.0.0  #允许访问的ip地址
replSet=rs0  #集群编号
keyFile=/usr/local/mongodb/bin/keyfile

3、配置完成之后,启动

mongod --config mongodb.conf
mongod --config mongodb-dev.conf

4、副本集初始化

通过 Shell 连接到任意一个MongoDB实例,执行 rs.initiate() 方法对副本集进行初始化。

[root@hadoop34 mongodb-4.0.2]# mongo 172.16.250.234:27017
> conf=
    {
    "_id" : "rs0",
    "members" : [
        { "_id" : 0, "host" : "127.0.0.1:27017" },
        { "_id" : 1, "host" : "127.0.0.1:27018" },
        ]
    }
> rs.initiate(conf)
{
    "ok" : 1,
    "operationTime" : Timestamp(1542247326, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1542247326, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}
rs0:SECONDARY>

如果在执行 rs.initiate() 方法时不传入任何参数,MongoDB 将以默认的配置文档对副本集进行初始化,后续可以再通过 rs.add() 方法来向副本集中添加成员。

副本集更新
# 向副本集中添加成员
rs.add("172.16.250.240:27017")
 
# 从副本集中删除成员
rs.remove("172.16.250.240:27017")
 
# 向副本集中添加仲裁
rs.addArb("172.16.250.240:27017")
 
# 向副本集中添加备份节点
rs.add({"_id":3,"host":"172.16.250.240:27017","priority":0,"hidden":true})

开启安全认证

创建用户

登录 PRIMARY节点创建用户,在此我们对 test 库开启安全认证。

rs0:PRIMARY> show dbs
admin   0.000GB
config  0.000GB
local   0.002GB
test    0.000GB
rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
rs0:PRIMARY> use test
switched to db test
rs0:PRIMARY> db.createUser({user:"admin",pwd:"admin",roles:[{role:"readWrite",db:"test"}]})
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "test"
		}
	]
}
创建keyFile文件

先停掉所有SECONDARY节点的MongoDB服务,然后再停掉PRIMARY节点的MongoDB服务,并在PRIMARY节点所在服务器上创建keyFile文件。

[root@hadoop39 mongodb-4.0.2]# openssl rand -base64 666 > /usr/local/mongodb-4.0.2/keyfile
[root@hadoop39 mongodb-4.0.2]# chmod 600 /usr/local/mongodb-4.0.2/keyfile

将生成的keyFile文件拷贝到其他节点服务器上,并修改文件的操作权限为 600。

    chmod 600 /usr/local/mongodb-4.0.2/keyfile
更新启动配置文件

修改PRIMARY节点的 mongodb.conf 文件,增加如下内容:

# Add below Config
auth=true
oplogSize=100
keyFile=/usr/local/mongodb-4.0.2/keyfile

修改SECONDARY节点的 mongodb.conf 文件,增加如下内容:

# Add below Config
oplogSize=100
keyFile=/usr/local/mongodb-4.0.2/keyfile
 
启动副本集

先以 --auth 方式启动PRIMARY节点:

[root@hadoop39 mongodb-4.0.2]# mongod -f /usr/local/mongodb-4.0.2/mongodb.conf

再启动SECONDARY节点:

    mongod -f /usr/local/mongodb-4.0.2/mongodb.conf

————————————————
版权声明:本文为CSDN博主「pengjunlee」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pengjunlee/article/details/84101732

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值