• mongo数据库分片副本集增加访问控制


    1、生成密钥文件

    openssl rand -base64 756 > /data/mongodb/testKeyFile.file
    chmod 400 /data/mongodb/keyfile/testKeyFile.file

    2、将密钥复制到集群中的每台机器的指定位置

    如:scp  /data/mongodb/testKeyFile.file root@192.168.5.176:/data/mongodb

    3、预先创建好一个管理员账号和密码然后将集群中的所有mongod和mongos全部关闭

    连接任意一台机器的mongos

    mongo --port 20000

    添加用户

    use admin //注意一定要使用admin数据库
    db.createUser(
    {
    user:"root",
    pwd:"123456",
    roles:[{role:"root",db:"admin"}]
    }
    )

    然后依次连接到每一台机器上执行。

    killall mongod

    killall mongos

    4、使用访问控制强制重新启动复制集的每个成员

    4.1依次在每台机器上的mongod(注意是所有的mongod不是mongos)的配置文件中加入下面一段配置。如我在10.12.40.83上的config server,shard1,shard2,shard3都加入下面的配置文件
    security:
    keyFile: /data/mongodb/testKeyFile.file
    authorization: enabled


    或者

    keyFile= /data/mongodb/testKeyFile.file


    4.2依次在每台机器上的mongos配置文件中加入下面一段配置。如我在10.12.40.83上的mongos配置文件中加入上面的一段配置

    security:
    keyFile: /data/mongodb/testKeyFile.file

    或者

    keyFile= /data/mongodb/testKeyFile.file

    4.3重启每个mongo示例。因为我的认证配置在了配置文件里面,所以启动命令不需要再加认证的参数 (例如--auth等)

    mongod -f /data/mongodb/config/configs.config
    mongod -f /data/mongodb/config/shard1.config
    mongod -f /data/mongodb/config/shard2.config
    mongod -f /data/mongodb/config/shard3.config
    mongos -f /data/mongodb/config/mongos.config

    依次重启三台机器的mongod和mongos实例

    5、连接mongodb集群
    如果用mongo sell脚本连接

    mongo --port 20000
    use admin
    db.auth("root","123456")
    如果返回1表示连接成功,然后你就可以访问自己的数据库啦~!如use testDB


    如果使用mongodb连接工具。我用的是Robo3T。在连接的时候选择使用authentization

    ————————————————
    版权声明:本文为CSDN博主「大伟爱自由」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/uncle_david/article/details/78713551

  • 相关阅读:
    k8s pod 定义 文件 yaml
    动态规划(1)
    Angular封装WangEditor富文本组件
    使用Angular CDK实现一个Service弹出Toast组件
    让Angular自定义组件支持form表单验证
    等了半年,m1芯片原生支持的.NET IDE出现了
    eachrt
    dgy
    开源节流
    company
  • 原文地址:https://www.cnblogs.com/bigstar0207/p/16070590.html
Copyright © 2020-2023  润新知