MongoDB设置密码验证

说明:

MongoDB副本集就是shard,所以配置是一样的,如果只是单机的MongoDB,连keyfile文件都不需要,只需要配置auth=true即可。所以好好看一下下面的例子,你应该就可以明白MongoDB应该如何设置密码验证了!


MongoDB分片集群设置密码验证

创建keyfile秘钥文件

    #MongoDB集群中的每一个实例彼此连接时都会检验彼此证书是否相同,只有相同的实例彼此才可以访问。

    openssl rand -base64 512 > mongodb.key

    chmod 400 mongodb.key

将密码复制到集群的每台设备的指定位置

    就假如我们的指定位置是/usr/local/mongodb/下

    scp mongodb.key root@IP地址:/usr/local/mongodb/

连接任意一台mongos创建用户

    ./mongo IP地址:[mongos端口]

> use admin
> db.createUser({                    //集群管理账号
    "user":"admin", 
    "pwd":"admin888",
    "roles":[{
      role:"root",
      db:"admin"
    ]}
})
> use testdb                         //客户端账号
> db.createUser({
    "user":"user",
    "pwd":"user888",
    "roles":[{
      role:"dbOwner",
      db:"testdb"
    ]}
})

MongoDB用户角色问题可以参考我之前写的MongoDB用户和角色说明

配置密码认证

    config Server的配置文件

#新增下列两项
keyFile=/usr/local/mongodb/mongodb.key auth=true

    修改完成后,重启config Server,先重启secondary,最后再重启primary。

    shard同config Server一样。

    mongos则是没有auth这个选项,只需要配置keyFile验证即可。

全部重启完成后,验证

    #连接任意一台mongos

    ./mongo IP地址:[mongos端口]

> use admin
> db.auth("admin","admin888")      //不登录是无法操作MongoDB的

至此,MongoDB的密码认证就配置完成了! 

posted @ 2022-03-02 11:24  RFAA  阅读(1211)  评论(0编辑  收藏  举报