mongoDb的读session和写session权限报错问题

go在使用mongoDb时用到了全局会话,发现在创建的session的逻辑相同,首先会进行数据的查询,此时获取了全局session执行读操作,查询所有文档,则当前会话为读会话,当再去插入时发现会报错,此时session读会话不能执行写权限,起初不知什么原因就去测试,发现全局session创建后第一次使用的操作会影响它的操作权限,查询会话与写会话不一样,如果建立后使用的是写就为写权限如果执行查就查权限,去查的执行写报错,写的执行查的会话可以完成。

通过golang的异常捕获和尝试就发现了这个问题,操作输出如下:复用会话,但是跨了行为定义的权限会报错,就需要重新初始话全局session,这中读写权限的区分保正多用户的安权。

复制代码
开始读
再写
mydb fileSource
------
err错误信息: Session already closed
再重新建立连接
CreateSession success!!
mydb fileSource
------
=====
苹果插入成功
捕获异常并补偿成功!
CreateSession success!!
fileSource
6
数据执行成功!
查到的结果大小 6
LastOf执行
CreateSession success!!
fileSource
6
数据执行成功!
查到的结果大小 6
LastOf执行
LastOf执行
LastOf执行

CreateSession success!!
fileSource
6
数据执行成功!
查到的结果大小 6
LastOf执行
LastOf执行
LastOf执行
LastOf执行
LastOf执行
LastOf执行
再写
mydb fileSource
------
err错误信息: Session already closed
再重新建立连接
CreateSession success!!
mydb fileSource
------
=====
苹果插入成功
捕获异常并补偿成功!

mydb fileSource
------
=====
苹果插入成功
CreateSession success!!
fileSource
8
数据执行成功!
查到的结果大小 8
LastOf执行
LastOf执行
再写
mydb fileSource
------
err错误信息: Session already closed
再重新建立连接
CreateSession success!!
mydb fileSource
------
=====
苹果插入成功
捕获异常并补偿成功!
相关推荐
2401_874732531 小时前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
FreakStudio2 小时前
0 元学嵌入式 GUI!保姆级 LVGL+MicroPython 教程开更,从理论到实战全搞定
python·单片机·嵌入式·面向对象·电子diy
Chengbei112 小时前
Redis 图形化综合检测工具:redis_tools_GUI,一键探测 + 利用
数据库·redis·web安全·网络安全·缓存·系统安全
hutengyi2 小时前
PostgreSQL的备份方式
数据库·postgresql
mldlds3 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql
Chengbei113 小时前
若依全漏洞复现:从 SQL 注入到 RCE 一站式实战 复现、利用与防御
数据库·sql·安全·web安全·网络安全·系统安全·安全架构
小江的记录本4 小时前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
剑穗挂着新流苏3124 小时前
117_PyTorch 实战:利用训练好的模型进行单张图片验证
人工智能·python·深度学习
数据皮皮侠4 小时前
中国城市间地理距离矩阵(2024)
大数据·数据库·人工智能·算法·制造