我创建了一个mongodb复制集(使用3.2),并在每台服务器上,我将MongoDB设置为服务
“C:\ Program Files \ MongoDB \ Server \ 3.2 \ bin \ mongod.exe” - “C:\ program files \ mongodb \ server \ 3.2 \ mongod.cfg”--service
到目前为止一切顺利。我最近设置了用户并需要设置MongoDB,以便必须提供用户。根据我的阅读,我将使用--auth参数启动mongodb。但是,由于已经创建了服务,配置文件中是否有等价物?基于Configuration File Options Documentions,我尝试将security.authorization设置为启用
security:
authorization: enabled
但是当我在两台服务器上重新启动服务时,似乎两者都无法相互通信。我也试过
setParameter:
auth
但MongoDB无法启动该配置。
这样做的正确方法是什么?
答案 0 :(得分:2)
由于您使用的是副本集,因此仅设置security.authorization
是不够的,因为您需要允许cluster members to authenticate,这被称为"内部身份验证"在文档中。
最简单的方法是使用keyfile,它本质上是群集成员之间的共享密钥/密码。在您创建密钥文件并将其复制到所有副本集成员后,您需要通过security.keyFile
设置或{{1}在配置中指定它的位置}}
作为参考,您可能还需要阅读Enforce Keyfile Access Control on Existing Replica Set以获取有关这些步骤的更多详细信息。