在部署mongodb集群的时候,有些安全性要求比较高的地方,须要启用密码验证的方式,登陆mongo集群。mongodb
下面的方式是在mongodb 3.6版本的基础上,3个节点的集群里设置的。安全
1)进入mongodb的data目录,建立keyfile目录spa
2)使用openssl生成key文件.net
3)修改key文件权限为400blog
4)复制该key文件到每一个mongodb节点对应目录ssl
命令以下:ci
#cd /home/memdb/mongodb/conf部署 #openssl rand -base64 741 > /home/mongodb/data/mongo-keyfileget #chmod 400 ./ mongo-keyfileopenssl |
在未启用验证前,建立用户:
1)使用mongo链接mongos端口:
$bin/mongo IP:mongos port
2)切换到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"
}
]
}
)
|
1) Mongo.conf文件:
security: keyFile: "/home/mongodb/data/mongodb-keyfile" clusterAuthMode: "keyFile" authorization: "enabled"
|
config和mongos只增长上面2个属性便可。
上面完成以后,重启整个mongodb集群。
按照原来顺序启动若有错误,启动顺序可改成
1) 先启动全部config组件
2) 再启动全部mongod组件
3) 最后启动mongos组件