在部署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組件