OPTIONS
翻译或纠错本页面

在集群中开启权限认证

2.0 新版功能: 在集群中支持使用权限认证.

概述

当集群中开启了权限认证时,任何访问集群的终端都必须提供凭证,集群中MongoDB的相互访问也需要凭证.

要在集群中开启权限认证,需要在每个组件上逐一开启,包括每个 mongos ,每个 mongod 和每个配置服务器,以及复制集中每个成员.

权限认证需要一个身份认证的机制,大多数情况下使用 key file 完成.在一个集群中,这个文件的内容必须是相同的.

过程

1

生成一个key文件:

生成服务器之间进行权限认证时的key文件.

使用以下的 openssl 命令生成用于 keyfile 的伪随机数据:

openssl rand -base64 741 > mongodb-keyfile
chmod 600 mongodb-keyfile

你可以用任何方式生成key文件,要保证文件中存储的密码有足够的长度,并且有足够的无序程度.可以使用 openssl 的方式生成一个这样的key文件.

2

在集群的每个组件上开启权限认证.

在集群中每个 mongos ,每个 mongod,包括所有配置服务器和所有分片上使用以下几种方法指定key文件:

在配置文件中指定key文件.

在配置文件中,设置 keyFile 选项指定配置文件的路径,并像以下这样启动组件:

security:
  keyFile: /srv/mongodb/keyfile

在运行时指定key文件.

在启动组件时,设置 --keyFile 选项为key文件的路径.设置 keyFile 会自动设置 authorization ,因此在大多数情况下不需要单独设置 authorization .

3

添加用户

连接到 mongos 后,首先添加管理员用户,再添加以后的用户,参见 Create a User Administrator 获得更多信息.