MongoDB集群部署&开启身份认证

MongoDB支持分布式部署,分布式部署的各节点可配置keyFile认证。MongoDB支持登陆用户身份认证,通过用户的角色设置分配操作权限。当然,默认情况下是不开启身份认证的,集群中各节点也是不进行keyFile认证的,需要增加一些配置以开启,提高安全级别。默认的部署方式在使用上很简单,但是在生产环境中有很大的安全隐患。

经过简单学习和演练,提前准备好部署程序和文件来使用。

准备

  • 从官网下载linux版的部署压缩包并解压tar -zxvf mongo-v3.2.tar,我使用的是3.2.20版本。
  • 解压出来的文件夹只有一个bin和几个文件,这些都不用动,创建几个bin同级的文件夹。分别存放keyFile认证文件,集群日志,编写好的启动脚本和数据文件位置。
        mkdir key
        mkdir logs
        mkdir sh
        mkdir data
  • 生成keyFile文件并放置到key文件下。可使用openssl生成,部署在服务器上的keyFile文件的访问权限要求是600的,部署启动时候要注意下这个权限问题。
    openssl rand -base64 745 > mdb-keyfile-1.jks
    chmod 600 mdb-keyfile-1.jks
  • 编写一个启动脚本,名字可以是mongo_auth.sh,放在刚才创建的sh文件中。
## 指定了数据文件路径是之前创建的data文件夹,给集群命名叫mdbset,
## 日志存放在创建的logs文件夹中,指定了使用哪个keyFile。--auth开启身份认证
## --fork开启后台执行
../bin/mongod --dbpath=../data --port 32017 --replSet mdbset --logpath=../logs/mdb.log --keyFile ../key/mdb-keyfile-1.jks --auth --fork &
  • 现在将整个文件夹打包,可以准备在服务其上进行部署。

部署

  1. 解压【部署程序包.zip】获得mongodb-3.2.20,上传到指定服务器上,我上传到/data目录下
  2. 每台服务器上执行命令,分别启动各个实例
    cd /data/mongodb-3.2.20/sh
    nohup sh mongodb_auth.sh >/dev/null 2>&1 &
  3. 构建集群,在选择的主实例服务器上执行
    ../bin/mongo -port 32017
    rs.initiate({_id:”mdbset”,members:[
    {_id:0,host:”ip1:32017”,priority:100},
    {_id:1,host:”ip2:32017”,priority:99},
    {_id:2,host:”ip2:32017”,priority:98},
    ]})
  4. 创建身份认证用户
    use admin
    db.createUser({user:”admin”,pwd:”admin”,roles:[“root”]})

这样创建的是顶级权限用户,为了数据安全,一般不适用,程序中使用指定低等级的用户进行数据操作,可和运维实施人员或管理人员确认创建。

有需要可以参考我的:
打包示例-百度云 密码:hwqs
打包示例-CSDN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值