高可用mongodb集群(分片+副本):用户权限配置
对于搭建好的mongodb副本集加分片集群,为了安全,需启动安全认证,使用账号密码登录。
默认的mongodb是不设置认证的。只要ip和端口正确就能连接,这样是不安全的。
mongodb官网声称,为了能保障mongodb的安全可以做以下几个步骤:
1、使用新的端口,默认的27017端口如果一旦知道了ip就能连接上,不太安全
2、设置mongodb的网络环境,最好将mongodb部署到公司服务器内网,这样外网是访问不到的。公司内部访问使用vpn等
3、开启安全认证。认证要同时设置服务器之间的内部认证方式,同时要设置客户端连接到集群的账号密码认证方式
以下详细描述如何配置安全认证。
■ 创建副本集认证的key文件
用openssl生成密码文件,然后使用chmod来更改文件权限,仅为文件所有者提供读取权限
cd /data/mongodb/conf
openssl rand -out mongo.keyfile -base64 90
chmod 600 mongo.keyfile
ll mongo.keyfile
-r-------- 1 mongod mongod 122 Aug 4 08:33 mongo.keyfile
提示:所有副本集节点都必须要用同一份keyfile,一般是在一台机器上生成,然后拷贝到其他机器上,且必须有读的权限,否则将来会报错:
permissions on /data/mongodb/conf/mongo.keyfile are too open
■ 修改配置文件指定keyfile
编辑各个服务的配置文件,添加如下内容:
vim /data/mongodb/conf/{config,shard[1-3],mongos}.conf
keyFile = /data/mongodb/conf/mongo.keyfile
注:开启keyfile认证就默认开启了auth认证
拷贝到其他节点:
scp /data/mongodb/conf/{config.conf,shard[1-3].conf,mongos.conf,mongo.keyfile} node2:/data/mongodb/conf
scp /data/mongodb/conf/{config.conf,shard[1-3].conf,mongos.conf,mongo.keyfile} node3:/data/mongodb/conf
■ 重新启动节点
依次启动配置节点、分片节点、路由节点
■ 创建帐号和认证
客户端mongosh,通过localhost登录任意一个mongos路由
提示:相当于一个后门,只能在 admin 下添加用户
提示:通过mongos添加的账号信息,只会保存到配置节点的服务中,具体的数据节点不保存账号信息,因此分片中的账号信息不涉及到同步问题
建议:先创建超管用户和普通用户,然后再开启安全配置
创建管理员帐号:
use admin
db.createUser({user: "admin", pwd: "password", roles: ["root"]})
db.auth("admin", "password")
创建一个普通权限帐号:
use testdb
db.createUser({user: "liking", pwd: "password", roles: ["readWrite"]})
db.auth("liking", "password")
■ 用管理员帐号可查看整体的分片情况
use admin
db.auth("admin", "password")
sh.status()
■ 用普通帐号访问数据
use testdb
db.auth("liking", "password")
■ 客户端连接多个mongos的标准格式
mongo mongodb://admin:'password'@node1:20000,node2:20000,node3:20000/testdb?authSource=admin
用 mongosh 连接报错,暂时无法解决,只能去掉用户名及密码连接,连接后再鉴权:
mongosh mongodb://node1:20000,node2:20000,node3:20000/admin
db.auth("admin", "password")
高可用mongodb集群(分片+副本):用户权限配置的更多相关文章
- 搭建高可用mongodb集群—— 分片
从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出 ...
- 搭建高可用MongoDB集群(一):配置MongoDB
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...
- 搭建高可用mongodb集群(四)—— 分片(经典)
转自:http://www.lanceyan.com/tech/arch/mongodb_shard1.html 按照上一节中<搭建高可用mongodb集群(三)-- 深入副本集>搭建后还 ...
- [转]搭建高可用mongodb集群(四)—— 分片
按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...
- [转]搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
- 搭建高可用mongodb集群(四)—— 分片
按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...
- 搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
- 搭建高可用mongodb集群(四)—— 分片
按照上一节中<搭建高可用mongodb集群(三)-- 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...
- 搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
- 搭建高可用mongodb集群—— 副本集
转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB& ...
随机推荐
- 前端Vue非常简单实用商品分类展示组件 侧边商品分类组件
前端vue非常简单实用商品分类展示组件 侧边商品分类组件 , 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id=13084 效果图如下 ...
- 前端vue uni-app基于uQRCode封装简单快速实用全端二维码生成插件
快速实现基于uQRCode封装简单快速实用全端二维码生成插件; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 效果图 ...
- AnyCAD应用——修改指定点,线,面的坐标实现物体移动
课题需求: 三维模型位置随实物位置改变而动态改变的功能,通过顶点位置坐标的改变,修改模型在显示中的位置. 功能验证:目前,可通过选中顶点手动输入坐标的方式,模拟验证此功能. 首先,点击"文件 ...
- vue3 安装 3d-force-graph
1.首先创建vue3的项目 2.创建好后通过开发工具打开项目并打开命令行,输入指令 npm install 3d-force-graph 安装即可 3.在使用的页面中引入 3d-force-graph ...
- kaggle中训练得到的output太大该怎么下载?
最近在使用Kaggle平台训练自己的模型,但是训练结束之后由于模型过大导致output那里一直在加载(转圈),即使加载出来点击download也没有反应 下面借鉴知乎大佬的方法可以完美解决!通过将其压 ...
- 【阅读笔记】低照度图像增强-《An Integrated Neighborhood Dependent...
本文介绍的是一种比较实用的低照度图像增强算法,选自2004年Tao的一篇论文,名称是<An Integrated Neighborhood Dependent Approach for Nonl ...
- Valine评论插件因为LeanCloud国内域名解析问题无法正常使用的解决方法
近日,LeanCloud 国内域名解析存在问题,Valine评论插件的评论内容都储存在LeanCloud,使用Valine评论插件的个人博客的评论及阅读数会显示失败. 关于 LeanCloud 国内域 ...
- 利用InnoStep在VS编译时自动构建安装包
摘要 很多同学在C/S开发领域或多或少都可能会遇到需要制作安装包的场景,打包的工具也是五花八门,例如有NSIS.InstallShield.Wix Toolset.ClickOnce等等,这里以Inn ...
- 2021-7-6 vue音乐播放器
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- C/C++八大排序
排序 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 按照难易程度排序,八大排序算法可以从简单到复杂 ...