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

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.xdnf.cn/news/16864.html

相关文章:

  • 17-C语言:第18天笔记
  • AI 类型的 IDE
  • Cesium 快速入门(六)实体类型介绍
  • 【运维基础】Linux 文件系统基本管理
  • 【Leetcode】2683. 相邻值的按位异或
  • 前缀和-1314.矩阵区域和-力扣(LeetCode)
  • C# 枚举器和迭代器(常见迭代器模式)
  • VBA代码解决方案第二十七讲:禁用EXCEL工作簿右上角的关闭按钮
  • ubuntu22.04系统入门 linux入门 简单命令基础复习 实现以及实践
  • 经典屏保问题 - 华为OD机试真题(Java 题解)
  • pytorch程序语句固定开销分析
  • dubbo源码之消费端启动的高性能优化方案
  • 28. 找出字符串中第一个匹配项的下标
  • C++-2025.7.31
  • 1️⃣4️⃣ OOP:类、封装、继承、多态
  • H.266 vs H.265/AV1/H.264:从工程落地看下一代视频系统的技术演进
  • 第三十一篇 AI的“能力考”:模型评估、保存与加载的艺术【总结前面3】
  • MBR与GPT分区表深度解析:硬盘分区该怎么选?
  • pip库版本升级
  • Android Studio 中Revert Commit、Undo Commit 和 Drop Commit 使用场景
  • Android Studio怎么显示多排table,打开文件多行显示文件名
  • 现在有哪些广泛使用的时序数据库?
  • [免费]基于Python的招聘职位信息推荐系统(猎聘网数据分析与可视化)(Django+requests库)【论文+源码+SQL脚本】
  • [mind-elixir]Mind-Elixir 的交互增强:单击、双击与鼠标 Hover 功能实现
  • Web3.0 和 Web2.0 生态系统比较分析:差异在哪里?
  • 【Datawhale AI夏令营】科大讯飞AI大赛(大模型技术)/夏令营:让AI理解列车排期表(Task3)
  • 【python 获取邮箱验证码】模拟登录并获取163邮箱验证码,仅供学习!仅供测试!仅供交流!
  • uni-app webview的message监听不生效(uni.postmessage is not a function)
  • linux 执行sh脚本,提示$‘\r‘: command not found
  • 从一开始的网络攻防(十四):WAF绕过