MongoDB默认是没有用户权限验证的,所以我们需要手动去添加用户,以便可以更加安全的进行访问,在没添加用户验证之前,通过mongos进入数据库时会有如下的警告:
这里就添加了一个useradmin这么一个用户,他可以进行所有数据库的用户管理。在添加这个用户后,我们连接mongodb时仍然不需要进行登录,这是因为我们未在配置中开启权限验证。
4.2.开启分片集群的权限验证
4.2.1 首先生成一个添加keyFile文件—–>用于认证使用
一个合理的keyFile应该满足下面的条件:
1.在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFile认证,集群所有mongod和mongos实例使用内容相同的keyFile文件。
2.进行初始化,修改副本集时,都从本地例外登录进行操作
3.由于启用了认证,需要建立一个管理员帐号,才能从远程登录。建立管理员帐户,利用管理员账户从远程登录后,需要建立一个可以操作某个数据库的用户,客户端就用这个用户访问数据库。
4.分片集群中的管理员帐号需要具备配置服务器中admin和config数据库的读写权限,才能进行分片相关操作
5.集群中每个分片有自己的admin数据库,存储了集群的各自的证书和访问权限。如果需要单独远程登录分片,可以按照3.2的办法建立用户
openssl rand -base64 753
利用上述命令就可以生成一个满足条件的keyFile(如下图),然后将生成的code拷入到keyFile.key中:
cat /usr/local/mongodb/key/keyFile.key
#然后要给该文件限定权限,必须是600
chmod 600 /usr/local/mongodb/key/keyFile.key
原文作者:alexzwt007
原文地址: https://www.jianshu.com/p/8e09fed50439
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。