mongodb 分片集群认证

增加认证

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

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

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

副本间认证

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

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

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

1.证书产生

openssl rand -base64 150 > ./mongo.keyfile

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

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

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

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

3.修改配置文件

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

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

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

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

4.重启集群

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

# 路由服务
bin/mongos -f configs/mongodb.conf

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:端口

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

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

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

在这里插入图片描述

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}

查看分片信息

查看对应collection存储信息

通过直接连接mongos

#   use ${目标db}
use test
db.stats()

在这里插入图片描述

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

mongodb角色

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

更多角色信息

相关推荐

  1. MongoDB 部署分片

    2024-04-26 15:14:05       10 阅读
  2. MongoDB分片搭建

    2024-04-26 15:14:05       32 阅读
  3. 阿里云MongoDB 分片介绍

    2024-04-26 15:14:05       18 阅读
  4. mongodb分片搭建

    2024-04-26 15:14:05       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 15:14:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 15:14:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 15:14:05       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 15:14:05       20 阅读

热门阅读

  1. kotlin根据文件的filePath转化为uri

    2024-04-26 15:14:05       37 阅读
  2. WordPress外贸独立站如何提高询盘转化率

    2024-04-26 15:14:05       18 阅读
  3. Reactjs数据篇

    2024-04-26 15:14:05       12 阅读
  4. ubuntu创建新用户,添加用户权限,删除用户

    2024-04-26 15:14:05       15 阅读
  5. 修改k8s kube-proxy转发为ipvs

    2024-04-26 15:14:05       43 阅读
  6. CLion的详细介绍

    2024-04-26 15:14:05       49 阅读
  7. 20240425-线程基础-线程的使用(一)

    2024-04-26 15:14:05       15 阅读