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

Linux中Mongodb副本集开启权限认证_第1张图片
​ (5)将keyfile文件同步到集群中的其他结点
Linux中Mongodb副本集开启权限认证_第2张图片
​ (6)创建用户,设定为root权限(实际不会开放root权限),并验证其是否成功
Linux中Mongodb副本集开启权限认证_第3张图片
​ 返回为1说明用户创建成功。

  1. 启动安全认证

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

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

​ (7) 在副本机中查看数据
Linux中Mongodb副本集开启权限认证_第9张图片

你可能感兴趣的:(NoSQL,mongodb,linux,数据库)