MongoDB副本集使用简单的密码身份验证

问题描述 投票:8回答:1

我有一个包含3个服务器的MongoDB副本集(1个主服务器,1个辅助服务器,1个仲裁服务器;这是由Google Cloud单击安装创建的默认副本集)。主服务器和辅助服务器的2个配置文件(mongod.conf)已更改,并添加了“security.authorization:enabled”。

Root用户添加了以下MongoDB shell命令:

use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})

使用“sudo service mongod restart”在主服务器和辅助服务器上重新启动MongoDB服务后,与副本集的连接将变为不稳定。

rs.status()有时会给出结果

  • 1个主要,1个无法访问,1个仲裁
  • 1个中学,1个中学,1个仲裁者
  • 1个辅助,1个无法访问,1个仲裁

如何为MongoDB副本设置正确的基本密码认证(不使用密钥文件)?

mongodb authentication replicaset database nosql
1个回答
8
投票

我终于找到了答案。 MongoDB副本集需要用户帐户和密钥文件。密钥文件似乎用于副本集中的服务器之间的身份验证,而不是用于登录。

在linux上创建mongodb密钥文件,复制到模式600完整的所有数据库服务器:

cd
openssl rand -base64 741 > mongodb.key
chmod 600 mongodb.key

mongod.conf文件:

replication:
  replSetName: rs0

security:
  authorization: enabled
  keyFile: /home/USERNAME/mongodb.key

管理员用户:

(just like in question content)
© www.soinside.com 2019 - 2024. All rights reserved.