当地MongoDB在系统数据库中无法创建用户怎么办

  介绍

小编给大家分享一下MongoDB在系统数据库当地中无法创建用户怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>前言

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

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

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

执行脚本

db.createUser (   {   用户:,“testuser_local",   pwd:,“testuser_local"   角色:,,{,角色:“read",, db:,“local",},)   }   )

报错信息

2018 - xx xxt14:48:30.437 + 0800 E查询(thread1)错误:不能# 39;t添加用户:不能在本地数据库中创建用户:
_getErrorWithCode@src/mongo shell/utils.js: 25:13
DB.prototype.createUser@src/mongo shell/db.js: 1290:15
@(壳):1:1

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

 mongoDB在系统数据库当地中无法创建用户怎么办

<强>解决方案

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

 mongoDB在系统数据库当地中无法创建用户怎么办

此时可以创建成功。

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

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

 mongoDB在系统数据库当地中无法创建用户怎么办

默认数据库的编辑项,选择oplog所在当地的数据库

 mongoDB在系统数据库当地中无法创建用户怎么办

登入成功

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

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

以上是“mongoDB在系统数据库当地中无法创建用户怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

当地MongoDB在系统数据库中无法创建用户怎么办