当前位置:   article > 正文

mongodb 分片集群认证

mongodb 分片集群认证

增加认证

  • 副本间认证
  • 外部使用认证

如果是开启状态,先关闭路由,再关闭配置服务,最后关闭分片数据复本集中的每个mongod,从次节点开始。直到副本集的所 有成员都离线,包括任何仲裁者。主节点必须是最后一个成员关闭以避免潜在的回滚.最好通过 db.shutdownServer() 关闭数据库,防止后续启动时报错

//shutdown must run from localhost when running db without auth
//客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
mongo --port 27017
//#切换到admin库
use admin
//关闭服务
db.shutdownServer() 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

副本间认证

(在开启认证前,需要先创建超管用户)

use admin
db.createUser({user:"myroot",pwd:"123456",roles:["root"]})
  • 1
  • 2

副本集和共享集群的各个节点成员之间使用内部身份验证,可以使用密钥文件或x.509证书

1.证书产生

openssl rand -base64 150 > ./mongo.keyfile

# 赋予证书读权限
chmod 400 mongo.keyfile
  • 1
  • 2
  • 3
  • 4

2.将证书复制到所有的节点上,包括配置服务和路由

复制完成后,记得修改文件权限

# 赋予证书读权限
chmod 400 mongo.keyfile
  • 1
  • 2

3.修改配置文件

分片数据副本集和配置服务副本集上增加的配置
vim /use/local/mongodb/configs/mongodb.conf

security:
    #KeyFile鉴权文件
    keyFile: /use/local/mongodb/configs/mongo.keyfile
    #开启认证方式运行
    authorization: enabled
  • 1
  • 2
  • 3
  • 4
  • 5

路由服务上增加的配置,路由服务不需要配置security.authorization

security:
    #KeyFile鉴权文件
    keyFile: /use/local/mongodb/configs/mongo.keyfile
  • 1
  • 2
  • 3

4.重启集群

cd /use/local/mongodb
# 分片数据副本集和配置服务副本集
bin/mongod -f configs/mongodb.conf

# 路由服务
bin/mongos -f configs/mongodb.conf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

tip:

  • 重启时可能会遇到重启失败的情况,可能是应该异常关闭分片集群导致的,可以尝试删除data/db/mongod.lock文件
  • 重启分片数据存储副本集时可能会遇到启动后一直卡着,没有返回success情况,此时通过看日志如果看到其中包含有**RSM monitoring host in expedited mode until we detect a primary",“attr”:{“host”:“#{ip:端口}”,“replicaSet”:“#{集群配置-replication.replSetName}”}}**错误,是因为集群没有完整的启动,接着启动集群的其他功能即可解决

登录认证

通过完善副本间认证后,启动服务,即可通过密码进行登录了

未使用密码登录会报错

mongodb://路由1:端口,路由2:端口
  • 1

MongoServerError: Command hostInfo requires authentication
在这里插入图片描述

使用密码登录即可正确登录

mongodb://myroot:123456@路由1:端口,路由2:端口
  • 1

在这里插入图片描述

spring认证

spring:
  data:
    mongodb:
      # uri: ${MONGODB_URI:mongodb://${账号}:${密码}@路由1:端口,路由2:端口/${连接的库}?authSource=${校验认证信息的库}}
      uri: ${MONGODB_URI:mongodb://root:123456@192.168.2.18:27017,192.168.2.19:27017/db_test?authSource=admin}
  • 1
  • 2
  • 3
  • 4
  • 5

查看分片信息

查看对应collection存储信息

通过直接连接mongos

#   use ${目标db}
use test
db.stats()
  • 1
  • 2
  • 3

在这里插入图片描述

count数可能不一致
在这里插入图片描述
详细字段请参看官网dbstat
在这里插入图片描述

mongodb角色

角色权限
read查询本库的权限
readWrite增删改查本库的权限
dbAdmin数据库对象的管理操作,但没有数据库的读写权限
userAdmin在本库下创建用户的权限
dbOwner本库所有操作的权限
readAnyDatabase查询本实例所有库的权限
readWriteAnyDatabase增删改查本实例所有库的权限
userAdminAnyDatabase在本实例所有库下创建用户的权限
dbAdminAnyDatabase本实例所有库的dbAdmin权限
hostManager数据库对象的管理操作,但没有数据库的读写权限
clusterMonitor查询集群和复制集的权限
clusterManager管理和监控集群和复制集的权限
clusterAdmin集群所有操作的权限
backup查询本实例所有库的权限
restore增删改查本实例所有库的权限
root超级用户权限

更多角色信息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/503938
推荐阅读
相关标签
  

闽ICP备14008679号