Linux中Mongodb副本集开启权限认证

搭建好Mongodb副本集后(详见:linux下Mongodb副本集搭建),默认是不会开启安全认证。这时任何的都可以操作该副本集,这在实际生产环境中绝对不允许。为保证副本集的数据安全,开启副本集的安全认证必不可少。
Mongodb副本集之间的通信一般可以使用证书和keyFile文件来完成。实际生产环境更我会使用证书,但证书需要申请,这里仅演示如何通过keyFile文件实现副本集的安全。
keyFile文件其实质就是单机的auth认证。也就是提供用户名和密码认证后,方可操作副本集。

  1. 创建密钥文件
    (1)创建安全认证的keyfile文件,本例创建在mongodb/repli/key目录下
mkdir -p /usr/local/mongodb/repli/key

​ (2)进入到上述目录,并创建文件 keyfile

touch keyfile

​ (3)使用linux系统提供的密码工具openssl生成符合标准的密钥并写入keyfile文件中

openssl rand -base64 756 -out keyfile

​ (4)修改keyfile文件权限为600

chmod 600 /usr/local/mongodb/repli/key/keyfile

在这里插入图片描述
​ (5)将keyfile文件同步到集群中的其他结点
在这里插入图片描述
​ (6)创建用户,设定为root权限(实际不会开放root权限),并验证其是否成功
在这里插入图片描述
​ 返回为1说明用户创建成功。

  1. 启动安全认证

(1)停止所有机器的mongod服务,先副本再主结点

(2)修改每台机器的配置文件,在security中添加 keyFile属性
在这里插入图片描述
(3)将keyFile同步到集群中的其他机器
在这里插入图片描述
(4)重新启动每台机器上的mongod服务程序。
在这里插入图片描述
​ (5) 使用Mongo登录服务器
在这里插入图片描述
​ (6) 查看数据库,发现查询结果为空,切换到admin数据库,用户名和密码认证,返回结果为1
在这里插入图片描述
​ 权限认证开启成功

​ (7) 在副本机中查看数据
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是搭建 MongoDB 副本集的步骤: 1. 准备工作 确保已经安装了 MongoDB,可以通过以下命令检查 MongoDB 是否已经安装: ``` mongod --version ``` 2. 创建数据目录 在创建副本集之前,需要为每个 MongoDB 实例创建数据目录。可以通过以下命令创建数据目录: ``` mkdir -p /data/rs1 /data/rs2 /data/rs3 ``` 其,`/data/rs1`、`/data/rs2` 和 `/data/rs3` 分别是三个 MongoDB 实例的数据目录。 3. 启动 MongoDB 实例 使用以下命令启动三个 MongoDB 实例: ``` mongod --port 27017 --dbpath /data/rs1 --replSet rs0 mongod --port 27018 --dbpath /data/rs2 --replSet rs0 mongod --port 27019 --dbpath /data/rs3 --replSet rs0 ``` 其,`--port` 参数指定 MongoDB 实例的端口号,`--dbpath` 参数指定数据目录的路径,`--replSet` 参数指定副本集的名称。 4. 连接到其一个 MongoDB 实例 使用以下命令连接到其一个 MongoDB 实例: ``` mongo --port 27017 ``` 5. 初始化副本集 在 MongoDB Shell 执行以下命令初始化副本集: ``` rs.initiate() ``` 6. 添加其他 MongoDB 实例 在 MongoDB Shell 执行以下命令添加其他 MongoDB 实例: ``` rs.add("localhost:27018") rs.add("localhost:27019") ``` 其,`localhost:27018` 和 `localhost:27019` 分别是其他两个 MongoDB 实例的地址。 7. 查看副本集状态 在 MongoDB Shell 执行以下命令查看副本集状态: ``` rs.status() ``` 如果输出结果的 `members` 数组有三个成员,则说明副本集搭建成功。 以上就是搭建 MongoDB 副本集的步骤,希望对你有帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值