在部署mongodb集群的时候,有些安全性要求比较高的地方,需要启用密码验证的方式,登录mongo集群。
下面的方式是在mongodb 3.6版本的基础上,3个节点的集群里设置的。
1.生成集群验证key文件
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 |
2.创建验证用户
在未启用验证前,创建用户:
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" } ] } ) |
3. 增加配置文件的验证属性
1) Mongo.conf文件:
security: keyFile: "/home/mongodb/data/mongodb-keyfile" clusterAuthMode: "keyFile" authorization: "enabled"
|
config和mongos只增加上面2个属性即可。
4.重启集群
上面完成之后,重启整个mongodb集群。
按照原来顺序启动如有错误,启动顺序可改为
1) 先启动所有config组件
2) 再启动所有mongod组件
3) 最后启动mongos组件
相关推荐
在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...
本项目是用C#语言开发的一个MongoDB集群自动部署工具,它的主要目标是简化在Linux服务器上部署和管理MongoDB副本集的过程。C#是一种通用的、面向对象的编程语言,通常用于Windows平台,但通过.NET框架和开源库,也...
### MongoDB集群搭建详解 #### 一、MongoDB集群概述 MongoDB是一种非常流行的NoSQL数据库系统,因其灵活性、可扩展性和高性能而广泛应用于各种场景。MongoDB支持多种部署模式,其中集群部署是实现高可用性与横向...
在Python中连接MongoDB集群是一项常见的任务,特别是在大型项目中,使用MongoDB的分布式特性可以提高数据处理的效率和可用性。以下将详细介绍如何使用Python的`pymongo`库来连接MongoDB集群。 首先,我们需要了解...
解决这个问题的基本思路是通过修改MongoDB配置文件来临时禁用身份验证,然后通过无密码登录来重置密码。以下是具体的步骤: 1. **修改配置文件**: 打开MongoDB的配置文件,通常位于`/etc/mongodb.conf`。使用文本...
本文将介绍MongoDB的基本使用方法,包括环境搭建、登录安全配置以及如何在Spring Boot项目中集成MongoDB集群。 ### MongoDB基础环境搭建 搭建MongoDB环境的第一步是下载最新版本的安装包。目前,MongoDB社区版的...
请注意,`pemFiles`包含客户端证书,`pemKeyPassword`是解密私钥的密码(如果需要),而`caFile`是CA文件,用于验证服务器的身份。 5. **验证连接**:成功连接后,可以通过查询`serverStatus`命令查看SSL连接状态...
### MongoDB安装及副本、集群搭建详解 #### 一、MongoDB基本安装流程 **1. 创建MongoDB用户及设置密码** - 在Linux系统中,首先需要为MongoDB创建一个专用的用户账户,并为其设置密码。 ```bash useradd ...
- `scramIterationCount` 和 `scramSHA256IterationCount`:SCRAM密码哈希迭代次数,用于增加密码安全性。 ### 一般参数 这些参数影响数据库的整体行为和资源管理: - `connPoolMaxShardedConnsPerHost`:每个分片...
在高可用性和扩展性方面,MongoDB 3.0.2支持复制集和分片集群。复制集能够提供数据冗余和故障转移,确保服务的持续性;分片集群则可以通过将数据分布在多个服务器上,实现水平扩展,处理大规模的数据量。 在压缩...
4. **安全增强**:此版本增强了安全性,包括支持SCRAM-SHA-256身份验证机制,提高了密码的安全性,同时支持X.509证书认证,增强了网络通信的安全。 5. **地理位置索引改进**:MongoDB 3.2对地理位置索引进行了优化...
MongoDB 2.2支持SCRAM-SHA-1认证协议,提高了密码安全性。同时,权限管理更加精细,用户可以为特定的数据库和集合设置访问权限。 5. **复制集改进**:MongoDB 2.2的复制集功能也得到了强化,提升了数据冗余和容错...
所有客户端都必须经过用户名/密码验证才能访问数据库。 **2.4 DBA常用命令** - **帮助命令:** `help`显示帮助信息;`show dbs`列出所有数据库;`show collections`列出当前数据库中的集合;`show users`列出当前...
MongoDB 是一个流行的开源文档型数据库系统,设计用于处理大量数据并提供高可用性和灵活性。在 MongoDB 4.x 版本中,引入了许多增强的...遵循最佳实践,结合适当的权限分配,可以有效地管理和保护你的 MongoDB 集群。
MongoDB 是一个高性能、分布式、开源的文档型数据库,它以JSON格式的数据存储,灵活性高,适合处理大量的半结构化数据。在PHP环境下,为了能够与MongoDB进行交互,我们需要安装并配置PHP的MongoDB扩展。 ...
如果启用了身份验证,需要在连接时提供用户名和密码,如:`mongo --username myUser --password myPassword --authenticationDatabase admin`. 9. **备份与恢复** 要备份MongoDB数据,可以使用`mongodump`工具;...