阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

134次阅读
没有评论

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

我们知道,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)建议数据的拉取,在辅助节点上拉取,减少主库的压力。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计871字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中