当前位置: 首页 > news >正文

MongoDB用户认证authSource

文章目录

  • authSource
  • 遇到的问题

authSource

MongoDB用户认证逻辑与以往我认知的关系型数据库逻辑不太一样,多了一层用户与数据库关系的绑定。

  • 在建立用户时,需要先指定数据库,则存在一个概念:用户归属于数据库。额外,依然是可以为用户赋需要的权限,例如对某个数据库具有读、些权限。

  • 在连接时,会根据请求中的authSource参数的值(数据库)去校验是否有这样的用户在该数据库下。如果请求url中未携带authSource参数,则默认去找admin数据库。

// 建立用户
use admin  // 在该数据库下创建的用户属于该数据库,连接时必须指定认证数据库。在admin数据库创建可以管理多个数据库的用户
db.createUser({user: "zyRW_admin_zy",pwd: "123456",roles: [{ role: "readWrite", db: "zy" }]
})// 赋权限
db.grantRolesToUser("zyRW", [{ role: "read", db: "local" }
])// 收回权限
db.revokeRolesFromUser("zyRW", [{ role: "read", db: "local" }  // 删除local库的读写权限
])

遇到的问题

使用mongodb-driver-sync-4.2.1版本的驱动连接不同版本的Mongodb时:

当连接8.0版本的Mongodb时,若用户归属于admin数据库,authSource参数并未生效;
当连接8.0版本的Mongodb时,若用户归属于zy数据库,authSource参数生效; (结合上述测试,怀疑是先去admin数据库找用户,若未找到,则在参数配置的数据库找用户,待验证)
当连接4.0版本的Mongodb时,无论用户归属于什么数据库,authSource参数均生效。

当给连接驱动升级到适配8.0版本的Mongodb时不存在该问题。

http://www.dtcms.com/a/307587.html

相关文章:

  • Unity_数据持久化_PlayerPrefs存储各数据类型
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(6)
  • 【笔记】重学单片机(51)
  • Mac上优雅简单地使用Git:从入门到高效工作流
  • threejs创建自定义多段柱
  • 浅谈物联网嵌入式程序开发源码技术方案
  • STORM代码阅读笔记
  • 邢台市某区人民医院智慧康养平台建设项目案例研究
  • Mac安装Navicat教程Navicat Premium for Mac v17.1.9 Mac安装navicat【亲测】
  • 【ARM】PK51关于内存模式的解析与选择
  • c++:设计模式训练
  • 两款免费数据恢复软件介绍,Win/Mac均可用
  • 【javascript】new.target 学习笔记
  • 揭秘动态测试:软件质量的实战防线
  • List和 ObservableCollection 的区别
  • 【worklist】worklist的hl7、dicom是什么关系
  • 原生安卓与flutter混编的实现
  • 如何使用一台电脑adb调试多个Android设备
  • AI 如何评价股票:三七互娱(SZ:002555),巨人网络(SZ:002558)
  • 解决:MATLAB 已经画好了Figure,想在不重新绘图的情况下去掉坐标轴刻度线
  • Java 大视界 -- Java 大数据在智能医疗远程健康监测与疾病预防预警中的应用(374)
  • 《以终为始,不辩过程》
  • cartographer 概率栅格地图
  • JVM面试通关指南:内存区域、类加载器、双亲委派与GC算法全解析
  • 一万字讲解Java中的IO流——包含底层原理
  • GCC/G++ + Makefile/make 使用
  • Visual Studio调试技巧与函数递归详解
  • “0 成本开跨境店” 噱头下的优哩哩:商业模式深度剖析
  • 5G 单兵终端 + 无人机:消防应急场景的 “空 - 地” 救援协同体系
  • 【可用有效】Axure RP 9 授权码