MongoDB复制集安全认证
来源:互联网 发布:英语语义学 知乎 编辑:程序博客网 时间:2024/04/30 08:49
之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权限认证来保证复制集的安全捏?
先给大家看一下我在centos虚拟机上搭建的复制集
这和我之前的那篇博客上展示的不是同一个复制集,因为昨天我在原来那台虚拟机上瞎几把搞的时候改错了一个配置文件然后系统就GG了。。。。。于是今天我又重新装了一遍。
上面展示的五个文件夹分别是五个数据库的安装路径,文件夹名后面的数字是端口号。27017是priority最高的一个,27018、27019为普普通通的节点,27020为延时300秒的从节点,27021为投票节点。
那么要开启复制集的安全认证首先需要关闭全部节点,而且在此之前不应该对某个节点使用单机节点的认证方式,即不可以在某个节点的启动文件中配置auth=true且在该节点里创建用户。因为这样子做只适合单机节点,在复制集中这样做会导致该节点发现不了复制集中的其他节点,因为没有权限访问。复制集的安全认证需要通过配置keyfile文件的方式进行。
接下来我们需要在每个节点的安装路径下新建一个keyFile文件,文件中的具体内容其实就是一行字符串,但复制集对keyFile文件有所要求
1.内容:以base64编码集中中的字符进行编写,即字符串只能包含a-z、A-Z、+、/
2.长度不能超过1000字节
3.权限最多到600
那么如何高效且高逼格生成一个合适的keyFile文件呢?
有这样一个方法分享给大家,我们在mongo27017中执行下面的操作
这里需要注意一下在第一次输出的时候我们需要检查它输出的字符串中是否有不是baase64的字符。第二行命令是把上面生成的字符串输入到keyFile中。由于之前所说,复制集对keyFile的权限有要求,最多到600,所以我们需要
chmod 600 keyFile
然后我们把这个文件复制到其他节点的安装路径中。
然后我们到启动文件中配置参数
这里我们需要注意最后一个参数keyFile,其值为之前我们生成的keyFile文件的地址。由于我们配置了keyFile参数相当于就开启了安全认证,所以就不必在配置auth参数了。
最后我们再启动复制集,在主节点中创建用户,第一个创建的用户必须在admin库中创建,创建方式如下
之后不管在主节点还是从节点中,我们都需要在admin库中通过db.auth()进行认证
以上就是配置复制集安全认证的全部过程,后面我将为大家介绍如何通过nodejs连接复制集。
- MongoDB复制集安全认证
- mongoDB的复制集5----复制集安全(认证,用户,权限)
- mongodb复制集安装
- MongoDB副本集安全验证
- MongoDB Replicate Set 复制集安装与配置
- mongodb进阶(3):复制的认证和oplog
- 全网独家MongoDB Certified DBA Associate考试认证视频
- MongoDB 认证
- R12.2新特性:弹性域值集安全策略
- 安装MongoDB-单击版、复制集、密码认证、安装MongoDB分片shard
- MongoDB 复制
- 【MongoDB】复制
- Linux下安装MongoDB复制集+用户认证,与Spring集成操作
- MongoDb复制-主从复制
- mongodb 用户认证
- MongoDB:用户认证
- MongoDB的认证范例
- Mongodb认证设置
- 金蝶EAS,BOS,KDTable表格增加普通行、合计行,需先解析表格
- 编译预处理
- 游戏sdk接入教程:uc(阿里游戏)接入
- numtri-section1.5
- LeetCode题目:String to Integer (atoi)
- MongoDB复制集安全认证
- tf.nn.conv2d 参数含义及结果维度
- tensorflow 多线程操作文件中关于文件名命名的思考
- redis自启动
- MyBatis--查询缓存
- java 检测代码运行时间
- 魔戒
- 支付宝java sdk jar和源代码包上传到本地仓库
- 机器学习-->集成学习-->BGM调参