[教程]MongoDB 从入门到进阶 (User系统)

自从MongoDB升级到2.4之后,User系统,或者说是权限系统有了翻天覆地的变化。 在MongoDB2.4之前的User系统,除了用户名和密码之外,只有一个ReadOnly属性。 如果一个用户在admin数据库里面进行了登陆,则admin数据库里面的Readonly属性将被沿用到其他所有的

自从mongodb升级到2.4之后,user系统,或者说是权限系统有了翻天覆地的变化。

在MongoDB2.4之前的User系统,除了用户名和密码之外,只有一个ReadOnly属性。

如果一个用户在admin数据库里面进行了登陆,则admin数据库里面的Readonly属性将被沿用到其他所有的数据库。

这样的权限管理当然是最最容易管理的,任何能够登入到MongoDB的用户,如果在Admin的数据库的用户表里面存在记录,则对于整个服务器上的所有数据库的访问权限也就固定下来了。

当然,用户可以了在个别的数据库的用户表中定义自己的权限。所谓的权限也就是只读或者非只读。

到了2.4之后,MongoDB的用户模型发生了很大的变化

MongoUser(2.4之前)

用户名

密码

是否只读

MongoUser(2.4之后)

用户名

密码

角色

其他数据库角色(如果该用户在Admin数据库的User表里面登陆的话,可以个别指定对于具体数据库访问的权限)

外部验证

“角色”这个概念,也“是否只读”比起来,内容丰富多了,不同的角色可以进行的操作是不同的,有的可以管理用户,看得到用户表,有的只能看到普通的数据表。

最近一直在对用户和权限进行研究,总结了一下心得:

1.由于要顾及以前的版本,ReadOnly属性还是可以使用的,不过,ReadOnly和Role是不能共存的

阶跃AI 阶跃AI

阶跃星辰旗下AI智能问答搜索助手

阶跃AI 291 查看详情 阶跃AI

2.密码和外部验证,也是不能共存的,要么用密码验证身份,要么用外部验证数据库来验证身份

3.其他数据库角色只能在Admin里面进行登录。

接下来说说坑爹的C#的驱动程序:C#的驱动程序,对于MongoUser的巨大变化,还没有开始进行对应。自己动手丰衣足食,我现在的开发都是使用自己改写的MongoUser类。

我不是很明白,为什么C#驱动不对应MongoUser的变化,我也不清楚其他语言的驱动程序是否也没有对应。。。。

这里是新的添加用户的GUI

[教程]MongoDB 从入门到进阶 (User系统)

添加了用户后,请不要忘记在启动MongoDB的时候加上 –auth的参数,不然的话,默认是不会启动认证的,不管是谁,都是完全的Admin的权限。

如果对于我的GUI工具感兴趣,Github上面有所有的代码

https://github.com/magicdict/MagicMongoDBTool

这次工具开始尝试提供性能监视工具,当然,只是一个小的尝试罢了。

[教程]MongoDB 从入门到进阶 (User系统)

再说几句题外话,最近IBM宣布和10gen(MongoDB的开发公司)进行合作。我不知道IBM准备多大限度的支持MongoDB。但是不管怎么说,,对于MongoDB的爱好者来说,是一个不错的消息。

MongoDB现在还是冷门的数据库。园子里面也少有介绍MongoDB的文章,或者即使介绍,也是入门级别的。

技术就像赌博一样,谁知道明年的这个时候,Mongo是不是会大红大紫,成为另一个Oracle。不管怎么样,先投资一下吧。。。。。

想要直接体验工具的:   Net3.5是必须的。。。。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/532163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 11:07:29
下一篇 2025年11月9日 11:13:45

相关推荐

  • VS Code开发工坊:前端全栈开发环境搭建实战

    答案:通过安装ESLint、Prettier、Live Server、REST Client等核心插件,配置Node.js+Express后端环境并解决CORS实现前后端联调,利用launch.json设置断点调试,可构建高效VS Code全栈开发 workflow。 想用 VS Code 打通前端…

    2025年12月6日 开发工具
    000
  • 使用Express和EJS在独立卡片中展示多数据库内容

    本文详细介绍了如何利用Express框架、EJS模板引擎和Mongoose,从多个MongoDB数据库(或集合)中获取数据,并通过建立数据关联,在前端页面中以独立的HTML卡片形式动态展示图文结合的内容。重点在于后端的数据建模、关联查询以及前端EJS模板中循环渲染的正确实践。 理解需求:多源数据与独…

    2025年12月6日 web前端
    000
  • linux属于什么系统

    linux属于一种类UNIX操作系统。Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。 本文操作环境:red hat enterprise linux 7.4系统、thinkpad t4…

    2025年12月5日
    000
  • 如何在Laravel中配置会话管理

    在%ignore_a_1%中配置会话管理,1. 修改config/session.php文件;2. 根据需求调整.env环境变量;3. 选择合适的会话驱动如file、database、redis;4. 设置生命周期和安全性选项。核心在于通过config/session.php定义会话行为,包括驱动、…

    2025年12月5日
    000
  • ThinkPHP的依赖注入是什么?ThinkPHP如何实现IoC容器?

    thinkphp中依赖注入的核心是ioc容器,它通过构造函数注入等方式自动解析和管理类的依赖关系;2. 使用di能显著提升代码解耦、可测试性和可维护性,例如替换userrepository实现无需修改userservice;3. 容器通过绑定(如接口到实现、闭包绑定)和自动解析(利用反射递归注入依赖…

    2025年12月5日 PHP框架
    000
  • YII框架的MongoDB支持是什么?YII框架如何操作MongoDB?

    yii框架通过activerecord和dao两种方式支持mongodb操作,配置连接后可像操作关系型数据库一样进行增删改查;2. activerecord提供面向对象的封装,dao则允许更灵活的原生操作;3. 两者在api设计上保持一致,但mongodb无模式、使用objectid主键、支持嵌套数…

    2025年12月4日
    000
  • win10如何回退到上一个版本_win10系统版本回退操作指南

    可通过系统设置在升级后10天内回退到旧版Windows;2. 确保C盘保留windows.old等关键文件夹以维持回退能力;3. 使用升级前创建的系统还原点可恢复系统状态。 如果您在升级Windows系统后遇到兼容性问题或运行不稳定,可以考虑回退到之前的版本以恢复正常使用。以下是进行系统版本回退的操…

    2025年12月4日
    000
  • linux是一个什么系统

    linux是一个基于POSIX的多用户、多任务并且支持多线程和多CPU的操作系统;linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 本教程操作环境:linux5.9.8系统、Dell G3电脑。 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UN…

    2025年12月4日
    000
  • 华为EMUI11底部小白条怎么设置_华为EMUI11底部小白条设置教程

    遇到%ignore_a_1%手机emui11底部小白条使用不便的问题了吗?php小编鱼仔这就为大家带来emui11底部小白条的设置方法介绍,以下内容将详细解析小白条的设置教程,帮助大家轻松解决使用困扰。 1、打开手机设置,找到【系统和更新】,并点击打开。 2、进入系统和更新界面后,点击【系统导航方式…

    2025年12月4日 手机教程
    000
  • js如何检测温湿度传感器 物联网设备数据监测方案

    javascript无法直接读取温湿度传感器数据,必须通过中间层实现。1.硬件层:选择dht或sht系列传感器与esp32等微控制器连接。2.固件层:使用arduino ide或micropython编写代码读取传感器数据并通过wi-fi发送至服务器。3.后端层:构建node.js或python服务…

    2025年12月4日 web前端
    000
  • MySQL如何结合Node.js构建REST API MySQL+Node.js实现高效API开发的步骤

    使用node.js和mysql构建rest api的步骤包括:项目初始化与依赖安装,创建数据库连接配置文件并使用连接池,搭建express应用骨架,定义路由与控制器分离业务逻辑,最后通过启动脚本运行服务;2. 选择该组合的原因是node.js的非阻塞i/o模型适合高并发api处理,全栈javascr…

    2025年12月3日
    000
  • 华为p20中打开开发人员选项的操作步骤

    华为p20中开启开发人员选项可以让你访问额外的设置和功能,以便进行自定义、调试和性能调整。php小编西瓜今天将为你提供一步一步的指南,让你轻松地启用开发人员选项,释放你的手机的全部潜力。 1、首先点击打开p20手机桌面上的【设置】, 2、点击进入设置菜单下的【系统】。 3、在系统菜单下点击进入【开发…

    2025年12月3日
    000
  • Java中如何实现审计日志 详解AOP记录

    java中实现审计日志的核心是记录操作者、时间、类型及内容,主要通过aop实现。1. 定义切面类并使用@aspect注解;2. 使用@pointcut定义拦截方法的切点;3. 采用@afterreturning或@afterthrowing定义通知以记录成功或失败日志;4. 在通知中通过joinpo…

    2025年12月3日 java
    100
  • 华为p20pro中设置日期和时间的操作步骤

    %ignore_a_1%手机中如何设置日期和时间?php小编柚子为大家带来华为p20pro中更改日期和时间设置的详细教程。想要了解如何完成这项操作的朋友,快来往下查看具体步骤吧! 1、打开华为p20pro的手机桌面,点击进入桌面上的【设置】。 2、下拉到底栏,点击进入【系统】。 3、在系统菜单下点击…

    2025年12月3日 手机教程
    000
  • Swoole如何实现集群部署?集群如何管理?

    Swoole集群部署需依赖外部组件实现,核心方案包括:1. 使用Nginx或HAProxy进行负载均衡;2. 通过Consul、Etcd等实现服务发现;3. 利用Redis等分布式缓存管理会话状态;4. 采用Prometheus和ELK进行监控与日志管理;5. 常见模式有无状态API集群、有状态长连…

    2025年12月3日
    000
  • PHP数据库备份与恢复 PHP操作MySQL数据维护

    php操作mysql数据维护的核心在于保证数据的安全性和可用性,主要通过备份与恢复、日常优化和维护操作来实现。1.使用mysqldump命令行工具或mysqli/pdo扩展进行数据库备份;2.通过执行sql文件恢复数据库,建议在服务器端通过ssh运行脚本;3.php可执行清理过期数据、优化表结构、检…

    2025年12月3日 后端开发
    000
  • PHP怎样解析FlatBuffer数据 FlatBuffer解析方法高效处理二进制

    php解析flatbuffer数据的核心步骤包括获取schema、生成代码、读取和解析二进制数据。首先,需获取.fbs定义文件;其次,使用第三方工具或手动编写代码生成php解析逻辑;接着,通过file_get_contents()等函数读取二进制数据;最后按schema解析并使用数据。由于php缺乏…

    2025年12月3日 后端开发
    000
  • 如何在Yii2项目中高效集成MongoDB?yiisoft/yii2-mongodb助你轻松驾驭NoSQL数据库

    可以通过一下地址学习composer:学习地址 告别数据僵局:Yii2 项目中 MongoDB 集成的痛点与解决方案 你是否曾遇到这样的困境:项目需求快速变化,数据结构不断调整,而传统关系型数据库的严格模式让你疲于应对?或者,你正在处理大量非结构化数据,关系型数据库的性能瓶颈逐渐显现?这时候,你可能…

    开发工具 2025年12月3日
    000
  • 魅族 Note 16 系列新机明日发布,新系统也来了

    目前官方已经对这款新机进行了多次预热,外观设计和部分配置信息已经曝光。 官方预热海报显示,星纪魅族 Note 16 系列历经近 100 万次品质测试、近 100 项实验论证、超 480 小时严苛环境验证。 其中标准版机型采用直角边框设计,机身侧边还配有一枚按键,预计为单独的 AI 按键;后置 Dec…

    2025年12月3日 硬件教程
    100
  • 荣耀手机设置全面屏手势的操作流程

    荣耀手机使用全面屏手势,可以带来更加便捷的操作体验。php小编草莓将为大家详细介绍荣耀手机设置全面屏手势的操作流程,解决您在使用全面屏手机时的操作难题。请继续阅读以下内容,了解如何在荣耀手机上启用和自定义全面屏手势,让您的手机操作更加流畅高效。 第一步:我们点击进入荣耀手机桌面上的【设置】 第二步:…

    2025年12月3日
    000

发表回复

登录后才能评论
关注微信