zoukankan      html  css  js  c++  java
  • mongodb添加登录验证--分片环境

    1 生成密钥文件

    在keyfile身份验证中,副本集中的每个mongod实例都使用keyfile的内容作为共享密码,
    只有具有正确密钥文件的mongod或者mongos实例可以连接到副本集。
    密钥文件的内容必须在6到1024个字符之间,并且在unix/linux系统中文件所有者必须有对文件至少有读的权限。 #openssl rand -base64 756 > /home/mongodb/conf/keyfile #chmod 400 /home/mongodb/conf/keyfile 将keyflie文件传到其他服务器下的相应目录

    2 修改配置文件

    在每台的config server,shard1,shard2,shard3配置文件里都加入下面的配置:
    security:
      keyFile: /home/mongodb/conf/keyfile
      authorization: enabled

    每台机器上的mongos配置文件中加入下面一段配置:
    keyFile =  /home/mongodb/conf/keyfile

             mongos比mongod少了authorization:enabled的配置。原因是,副本集加分片的安全认证需要配置两方面的,副本集各个节点之间使用内部身份验证,用于内部各个mongo实例的通信,只有相同keyfile才能相互访问。所以都要开启keyFile;

            然而对于所有的mongod,才是真正的保存数据的分片。mongos只做路由,不保存数据。所以所有的mongod开启访问数据的授权authorization:enabled。这样用户只有账号密码正确才能访问到数据。

    3 新增管理用户并重启各实例

    连接任意一台机器的mongos
    #/home/mongodb/bin/mongo  192.168.1.223:20000
    添加用户
    >use admin //注意一定要使用admin数据库
    >db.createUser(
    {
    user:"admin",
    pwd:"admin",
    roles:[{role:"root",db:"admin"}]
    }
    )
    
    添加用户完成后,再重启各个mongodb实例;
    账号密码:admin/admin

    4 测试连接

    #/home/mongodb/bin/mongo  192.168.1.223:20000
    >show  dbs;     //此时无内容显示
    >use admin
    >db.auth("admin","admin")
    >show dbs;        //密码验证后才能看到所有的库
    或
    #/home/mongodb/bin/mongo 192.168.1.223:20000 -u admin -p admin  --authenticationDatabase admin

    大致流程:生成秘钥文件,分发到各个服务器上,修改各角色的配置文件,新增管理用户,重启各个角色,测试连接;

    #用户管理和认证方法

    官方详细文档:https://docs.mongodb.com/master/reference/security/#security-methods-in-the-mongo-shell

     

     

     -------------------------------------------------------------------------------------------------------------------

    参考链接:

    https://www.cnblogs.com/pl-boke/p/10064489.html

    https://blog.csdn.net/welcome66/article/details/84916061

    https://www.cnblogs.com/kevingrace/p/8184087.html

  • 相关阅读:
    软件质量属性简述
    浅谈MVC架构
    SOA整理
    程序员的自我修养阅读笔记3
    程序员的自我修养阅读笔记2
    程序员的自我修养阅读笔记1
    架构漫谈阅读笔记3
    架构漫谈阅读笔记2
    Weather APP
    php通过==和!==比较NULL和''结果均为真
  • 原文地址:https://www.cnblogs.com/llwxhn/p/12486168.html
Copyright © 2011-2022 走看看