MongoDB自学记录【四】----->mongodb分片集群添加用户权限

MongoDB默认是没有用户权限验证的,所以我们需要手动去添加用户,以便可以更加安全的进行访问,在没添加用户验证之前,通过mongos进入数据库时会有如下的警告:

《MongoDB自学记录【四】----->mongodb分片集群添加用户权限》” />    image.png</p><h2>4.1 首先建立一个拥有添加删除用户权限的账号</h2><pre><code>db.createUser({
 user:

这里就添加了一个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

《MongoDB自学记录【四】----->mongodb分片集群添加用户权限》” />    image.png</p><h3>4.2.2 在各个分片以及configserver的配置文件中加上如下语句</h3><pre><code>#开启权限验证
auth=true
keyFile=/usr/local/mongodb/key/keyFile.key
</code></pre><h3>4.2.3 在mongos配置文件中添加如下语句:</h3><pre><code>#指向keyFile
keyFile=/usr/local/mongodb/key/keyFile.key
</code></pre><h2>4.3 启动程序</h2><p>首先启动各个服务器中configserver</p><pre><code>sudo mongod -f config.conf
</code></pre><p>然后启动各个分片</p><pre><code>sudo mongod -f shard1.conf
sudo mongod -f shard2.conf
sudo mongod -f shard3.conf
</code></pre><p>最后启动mongos</p><pre><code>sudo mongos -f mongos.conf
</code></pre><h2>4.4.利用新组建账号登录集群</h2><pre><code>mongo 10.203.40.114:20000/testdb -u username -p password
</code></pre><p>可以看到已经没有之前出现的警告了</p><p><img layer-src=     原文作者:alexzwt007
    原文地址: https://www.jianshu.com/p/8e09fed50439
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

点赞