使用auth启动MongoDB作为服务

时间:2016-08-09 22:20:08

标签: mongodb

我创建了一个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无法启动该配置。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

由于您使用的是副本集,因此仅设置security.authorization是不够的,因为您需要允许cluster members to authenticate,这被称为"内部身份验证"在文档中。

最简单的方法是使用keyfile,它本质上是群集成员之间的共享密钥/密码。在您创建密钥文件并将其复制到所有副本集成员后,您需要通过security.keyFile设置或{{1}在配置中指定它的位置}}

作为参考,您可能还需要阅读Enforce Keyfile Access Control on Existing Replica Set以获取有关这些步骤的更多详细信息。