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) 建议数据的拉取,在辅助节点上拉取,减少主库的压力。
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MongoDB在系统数据库local中无法创建用户的解决办法
相关文章
- 教你如何使用Docker安装一个MongoDB最新版数据库
- 老生常谈MongoDB数据库基础操作
- Spring Data MongoDB 分页查询详解数据库
- MongoDB管理之道:掌握最优工具管理数据库(mongodb管理工具)
- 过高MongoDB CPU 利用率过高问题排查(mongodb占用cpu)
- MongoDB日期格式处理指南(mongodb日期格式化)
- MongoDB: 了解复合索引的好处(mongodb复合索引)
- MongoDB云服务:轻松实现数据库集群部署(mongodb云服务)
- MongoDB:开启新的数据库之旅(mongodb的好处)
- MongoDB主从复制:搭建高可用性系统(mongodb主从复制)
- 集MongoDB: 副本集为安全保驾护航(mongodb副本)
- 社区MongoDB实战:在图灵社区打造数据库创新力量(mongodb实战图灵)
- MongoDB零碎数据迁移指南(mongodb迁移)
- 深入了解MongoDB 数据库的使用方法(深入学习mongodb)
- Mongodb并发能力究竟能达到多少?(mongodb多少并发)
- MongoDB数据库压缩技术研究(mongodb压缩)
- MongoDB数据轻松管理推荐5个实用的可视化工具(mongodb的可视化工具)
- MongoDB: 如何使用命令创建数据库和集合(mongodb创建命令)
- Mongodb时间存储:高效处理时序数据的关键(mongodb时间存储)
- R语言与MongoDB的强强联合:极大简化数据分析(r语言mongodb)
- 探索免费 MongoDB 数据库方案(免费mongodb)
- 库查看MongoDB数据库:必备技能(查看mongodb 数据)
- MongoDB中查询时间的奥秘(mongodb时间查询)
- MongoDB连接利器:实现数据集成与交互(mongodb连接工具)