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

栏目: 数据库 · 发布时间: 7年前

内容简介:我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响)。那么,如果其他部门(例如BI团队)需要抽取数据,从oplog位于local数据下面,为了将权限最小化,大家需要创建此库的权限(还可以将权限细化到集合,再次不讨论)。习惯性的,在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上无法创建用户的解决方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web视觉设计

Web视觉设计

Penny McIntire / 叶永彬 / 机械工业出版社 / 2008-08 / 56.00元

本书系统全面地介绍Web页面外观设计的相关知识。本书分为八章:导论、站点分析、导航、页面布局、色彩、图形、排版和表单。全面讲解网站界面所涉及的内容,叙述生动,由浅入深,提供了大量的示例代码以具体地说明如何运用所讨论的设计概念。. 本书可供Web开发技术人员和美工人员参考。...一起来看看 《Web视觉设计》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器