MongoDB在系统数据库local中无法创建用户的解决办法

 更新时间:2018年11月18日 08:42:33   作者:东山絮柳仔  
这篇文章主要给大家介绍了关于MongoDB在系统数据库local中无法创建用户的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响)。那么,如果其他部门(例如BI团队)需要抽取数据,从 local.oplog.rs中读取解析一个不错的选择。

oplog位于local数据下面,为了将权限最小化,大家需要创建此库的权限(还可以将权限细化到集合,再次不讨论)。

习惯性的,在local数据库下面创建,但是报错了。

执行脚本

db.createUser(
{
user: "testuser_local",
pwd: "testuser_local",
roles: [ { role: "read", db: "local" } ]
}
)

报错信息

2018-XX-XXT14:48:30.437+0800 E QUERY [thread1] Error: couldn't add user: Cannot create users in the local database :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1290:15
@(shell):1:1

查看mongoDB的官网介绍,发现确实不可以在local数据库下面创建账号

解决方案

其解决方案是,我们转到admin数据库下面,创建账号。

此时可以创建成功。

注意:(1)在程序端配置连接字符串时,相应的需要添加登入验证数据库参数 --authenticationDatabase admin

(2)通过NoSQLBooster登入时,Auth DB 选择执行创建命令的数据库名字(本实例为admin)

Default Database 的编辑项,选择oplog所在的local数据库

登入成功

(但是在测试过程中,发现此工具在这个小权限下,登入可以成功,但是有时候执行命令时报错,而通过 MongoDB shell 执行不报错。还需探究根本原因)

(3) 建议数据的拉取,在辅助节点上拉取,减少主库的压力。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Windows系统下安装MongoDB并内网穿透远程连接

    Windows系统下安装MongoDB并内网穿透远程连接

    这篇文章主要给大家介绍了关于Windows系统下安装MongoDB并内网穿透远程连接的相关资料,文中通过图文将步骤介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • 浅谈mongodb中query查询

    浅谈mongodb中query查询

    在MongoDB数据中,查询有多种方法。比如find和or查询等等。每种查询方法也有不同的查询条件供大家参考。
    2015-05-05
  • Mongodb 删除文档Delete与Remove的区别解析

    Mongodb 删除文档Delete与Remove的区别解析

    这篇文章主要介绍了Mongodb 删除文档Delete与Remove的区别,要从集合中删除所有文档,请将空过滤器文档传递{}给该 db.collection.deleteMany()方法,本文通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Windows下把MongoDB安装为系统服务的方法

    Windows下把MongoDB安装为系统服务的方法

    这篇文章主要介绍了Windows下把MongoDB安装为系统服务的方法,本文详细介绍了将mongoDB安装为WinXP下系统服务的过程,需要的朋友可以参考下
    2014-10-10
  •  PostgreSQL 与MongoDB使用对比分析

     PostgreSQL 与MongoDB使用对比分析

    这篇文章主要介绍了为什么 PostgreSQL 能代替 MongoDB?,需要的朋友可以参考下
    2023-12-12
  • MongoDB设置登录账号、密码及权限的详细过程

    MongoDB设置登录账号、密码及权限的详细过程

    这篇文章主要给大家介绍了关于MongoDB设置登录账号、密码及权限的详细过程,文中通过代码以及图文介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • MongoDB的$sample、aggregate和$rand实现随机选取数据

    MongoDB的$sample、aggregate和$rand实现随机选取数据

    在MongoDB中,我们可以使用内置的$sample聚合操作符来随机生成数据,$sample可以从集合文档中随机选择指定数量的文档,但由于其查询整个集合的性能问题,应该慎用,aggregate方法以及$rand函数的结合使用可以实现更加灵活的查询操作,并且可以对查询结果进行精细筛选
    2024-01-01
  • 批量备份还原导入与导出MongoDB数据方式

    批量备份还原导入与导出MongoDB数据方式

    前面我们介绍了mongoDB的安装与配置,接下来我们讲一讲如何使用mongo的可视化工具Navicat对mongo数据库进行操作和如何在终端进行mongo数据库对数据的批量操作
    2021-09-09
  • MongoDB优化心得分享

    MongoDB优化心得分享

    本文给大家分享的是一些使用mongoDB优化方面的心得,有需要的小伙伴可以参考下
    2017-12-12
  • vs2019 下用 vb.net编写窗体程序连接 mongodb4.2的方法

    vs2019 下用 vb.net编写窗体程序连接 mongodb4.2的方法

    这篇文章主要介绍了vs2019 下用 vb.net编写窗体程序连接 mongodb4.2,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论