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.pswp.cn/web/91514.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

插件升级:Chat/Builder 合并,支持自定义 Agent、MCP、Rules

TRAE 插件全新升级,Chat、Builder 合并,支持自定义智能体、MCP 及自定义规则,体验对齐 IDE,现已上线 JetBrains 和 VSCode。 1. Chat/Builder 合并,一个对话框即可智能协作 在 TRAE 插件的 Chat 对话框中&#xff0…

【历史人物】【王安石】简历与生平

目录 一、王安石个人简历 二、个人主要经历 三、个人成就及影响 1、散文 2、诗歌 3、词 四、经典评价摘录 一、王安石个人简历 基本信息‌ 姓名:王安石,字介甫,号半山。小名獾郎 性别:男 年龄:1021年-1086年…

Codeforces Round 1040 (Div. 2) A - D题详细题解

本文为Codeforces Round 1040 (Div. 2) A - D题的详细题解, 觉得有帮助或者写的不错可以点个赞! 目录 题目A: 题目大意: 解题思路: 代码(C): 题目B: 题目大意: 解题思路: 代码(C): 题目C: 题目大意: 解题思路: 代码(C): 题目D: 题目大意: 解题思路:…

数据结构 之 【排序】(计数排序)

目录 1.计数排序的思想 2.计数排序图解 3.计数排序代码逻辑 3.1求原数组最大最小值及计数数组的创建 3.2计数 3.3覆盖写 3.4释放资源 4.计数排序的注意事项 5.计数排序的时间复杂度与空间复杂度 以升序为例 1.计数排序的思想 前面我们学习的快排、归并排序、希尔排序.…

Ascend CANN/ACL API 模型部署加速最佳实践

1. 模型输入相关问题 图像尺寸信息 模型输入尺寸由原始模型决定,在转换时固定 图像尺寸信息是模型固有属性,不是转换时添加的 对于使用动态尺寸,可以在推理时自动根据当前的输入尺寸推导输出尺寸。 输入格式(NCHW/NHWC) --input_format 不同框架默认格式不同: Caffe: 支持…

QT信号和槽怎么传输自己定义的数据结构

在 Qt 中,信号(Signal)和槽(Slot)机制默认支持许多内置类型(如 int、QString、QList 等),但如果要传输 自定义数据结构(如结构体、类对象),需要额…

借助于llm将pdf转化为md文本

pdf转化为md格式后,意味着非结构化文本转为结构化文本,能清晰定位大标题、子标题,图表。 方便后续处理,因为llamaindex和langchain能更有效切分md类文本,避免信息丢失。 1)读取pdf为txt 读取pdf&#xf…

设计模式:中介者模式 Mediator

目录前言问题解决方案结构代码前言 中介者是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建和修改客户资料的对话框, 它由各种控件…

计算机基础速通--数据结构·线性表应用

如有问题大概率是我的理解比较片面,欢迎评论区或者私信指正。 考察线性表,核心围绕其存储结构特性、核心操作实现、场景应用选型三大维度,重点检验对基础概念的理解、代码实现能力及问题分析能力,通常会结合算法设计、复杂度分析和…

LeetCode Hot 100:42. 接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 解析 和题目 盛水最多的容器 类似, LeetCode Hot 100:11. 盛最多水的容器-CSDN博客 只是这里将每一个柱子视为一个宽度为…

【C语言入门级教学】字符指针变量

文章目录1.字符指针变量2. 数组指针变量2.1 数组指针变量初始化3.⼆维数组传参的本质1.字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; ⼀般使⽤: int main() { char ch w; char* pc &ch;//pc的类型是char**pcw;//对pc解引用 修改ch存放的内容…

【Shell脚本自动化编写——报警邮件,检查磁盘,web服务检测】

Shell脚本自动化编写Shell脚本自动化编写一、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。第一步:准备工作第二步:配置邮件信息第三步:检查磁盘的自动…

Java 接口(下)

三、接口的继承性【基础重点】 1. Java中的接口之间的继承关系是多继承,一个接口可以有多个父接口(1) 语法:interface 接口名 extends 父接口1,父接口2{} 2. 类和接口之间是多实现的关系:一个类可以同时实现多个接口(1) 语法:clas…

学习游戏制作记录(各种水晶能力以及多晶体)8.1

1.实现创建水晶并且能与水晶进行交换位置的能力创建好水晶的预制体,添加动画控制器,传入待机和爆炸的动画创建Crystal_Skill_Control脚本:挂载在水晶预制体上private float crystalExstTime;//水晶存在时间public void SetupCrystal(float _c…

在vscode 如何运行a.nut 程序(Squirrel语言)

在 VS Code 中运行 Squirrel 语言编写的 .nut 程序,需要先配置 Squirrel 运行环境并安装相关插件,具体步骤如下: 一、安装 Squirrel 解释器 Squirrel 程序需要通过其官方解释器 squirrel 或 sq 执行,首先需要安装解释器&#xf…

【数据结构】生活中的数据结构:从吃饭与编程看栈与队列思维

生活中的数据结构:从吃饭与编程看栈与队列思维 在软件开发的世界里,栈(Stack)和队列(Queue)是两种基础的数据结构,它们以不同的顺序管理数据:栈遵循后进先出(LIFO&#x…

牛客——接头密匙

题目链接:牛客--接头密匙 该题是一个很显然的前缀树问题,只需要构建a中所有数组对应的前缀树,之后求b所处前缀个数即可。关于前缀树的构建,可以观看左老师算法讲解045的视频,简单来讲就是用特殊字符将实际数据隔开&…

【Linux基础知识系列】第六十三篇 - 文件编辑器基础:vim

在 Linux 系统中,文本编辑器是系统管理员和开发人员不可或缺的工具。vim 是一个功能强大的文本编辑器,广泛应用于 Linux 系统中。它支持多种编辑模式,提供了丰富的文本编辑功能,适用于编写代码、配置文件和文档。掌握 vim 的基本使…

音频驱动的视觉特效:粒子、动画与Shader的融合技术

音频驱动视觉效果的实现与应用1. 引言在互动媒体、游戏和数字艺术领域,音频数据实时控制视觉元素已成为核心技术,它能创造沉浸式体验,增强用户参与感。例如,音乐会可视化或VR游戏中,音频信号驱动粒子流动、动画变化和S…

机器学习环境配置

【终极指南】吃透机器学习环境配置:从Conda、CUDA到Docker容器化 大家好!在机器学习的旅程中,一个稳定、可复现的环境是成功的基石。 第一部分:核心理念——为何环境配置如此重要? 任何机器学习模型的运行,…