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

62次阅读
没有评论

共计 1096 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 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 数据库下面创建账号

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

解决方案

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

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

此时可以创建成功。

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

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

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

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

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

登入成功

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

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

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

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1096字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)