在部署mongodb集群的时候,有些安全性要求比较高的地方,需要启用密码验证的方式,登录mongo集群。
下面的方式是在mongodb 3.6版本的基础上,3个节点的集群里设置的。
- 生成集群验证key文件
- 使用openssl生成key文件
- 复制该key文件到每个mongodb节点对应目录
- 在每个节点修改key文件权限为400
命令如下:
$ cd /home/memdb/mongodb/conf
$ openssl rand -base64 741 > /home/mongodb/data/mongo-keyfile
$ chmod 400 ./ mongo-keyfile
- 创建验证用户
在未启用验证前,创建用户:
- 使用mongo连接mongos端口:
$ bin/mongo IP:mongos port - 切换到admin库,创建用户:
use admin
db.createUser( {
user: "cluster",
pwd: "cluster",
roles: [ { role: "clusterAdmin", db: "admin" } ]
});
db.createUser( {
user: "super",
pwd: "super",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
});
use test
db.createUser(
{
user: "admin",
pwd: "admin",
roles:
[
{
role: "dbOwner",
db: "test"
}
]
}
)
- 增加配置文件的验证属性
Mongo.conf文件:
security:
keyFile: "/home/mongodb/data/mongodb-keyfile"
clusterAuthMode: "keyFile"
authorization: "enabled"
config和mongos只增加上面2个属性即可。
如果没有配置文件则在重启时,启动命令在原有的基础上加上
--auth --keyFile="/home/mongodb/data/mongodb-keyfile"
- 重启集群
上面完成之后,重启整个mongodb集群。
按照原来顺序启动如有错误,启动顺序可改为先重启复制集再重启主要节点
- 先启动所有config组件
- 再启动所有mongod组件
- 最后启动mongos组件
版权声明:本文为qq_39187019原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。