Mongodb副本集安全认证
通过主节点添加一个管理员帐号
只需要在主节点上添加用户,副本集会自动同步。
开启认证之前,创建超管用户:myroot,密码:123456
myrs:PRIMARY> use admin switched to db admin myrs:PRIMARY> db.createUser({user:"myroot",pwd:"123456",roles:["root"]}) Successfully added user: { "user" : "myroot", "roles" : [ "root" ] }
myrs:PRIMARY> db.auth("myroot","123456")
创建副本集认证的key文件
[root@bobohost ~]# openssl rand -base64 90 -out /var/lib/mongo/mongo.keyfile [root@bobohost ~]# chmod 400 /var/lib/mongo/mongo.keyfile
[root@bobohost ~]# ll /var/lib/mongo/mongo.keyfile
-r--------. 1 root root 122 8月 14 14:23 mongo.keyfile
提示:
所有副本集节点都必须要用同一份keyfile,一般是在一台机器上生成,然后拷贝到其他机器上,且必须有读的权限,否则将来会报错: permissions on /mongodb/replica_sets/myrs_27017/mongo.keyfile are too open
一定要保证密钥文件一致,文件位置随便。但是为了方便查找,建议每台机器都放到一个固定的位置,都放到和配置文件一起的目录中。
这里将该文件分别拷贝到多个节点中
scp /var/lib/mongo/mongo.keyfile 192.168.1.101:/var/lib/mongo
修改配置文件指定keyfile
将下面配置添加每个节点到配置文件中
keyFile =/var/lib/mongo/mongo.keyfile
auth=true
分别重启启动各个节点
连接测试
mongo --host 192.168.1.103 -u "myroot" --authenticationDatabase "admin" -p'123456'