版权声明:本文为博主原创文章,遵循?CC 4.0 BY-SA?版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/welcome66/article/details/84916061
在部署mongodb集群的时候,有些安全性要求比较高的地方,需要启用密码验证的方式,登录mongo集群。
下面的方式是在mongodb 3.6版本的基础上,3个节点的集群里设置的。
1)进入mongodb的data目录,创建keyfile目录
2)使用openssl生成key文件
3)修改key文件权限为400
4)复制该key文件到每个mongodb节点对应目录
命令如下:
#cd /home/memdb/mongodb/conf #openssl rand -base64 741 > /home/mongodb/data/mongo-keyfile #chmod 400 ./ mongo-keyfile |
---|
在未启用验证前,创建用户:
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组件