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) 建议数据的拉取,在辅助节点上拉取,减少主库的压力。
- CreateUserWizard控件创建成员无法连接数据库的解决方法
- 无法打开用户默认数据库的解决方法(SQL Server 2000和SQL Server 2005)
- windows server 2008系统(sp1) 出现MMC无法创建管理单元的解决方法
- 在安装sql2005中或安装后sa用户无法登陆系统解决方法
- sql server 2005 修改计算机主机名后 ,无法创建数据库发布的解决方法
- 无法打开用户默认数据库的解决方法
- 无法打开用户默认数据库(用户 计算机名字\Administrator登录失败) 解决方法之一
- 安装程序无法创建新的系统分区,也无法定位现有系统分区的解决方法
- 无法创建数据库关系图的解决方法
- 错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除。解决方法(转)
- sql无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法
- 删除用户时提示:数据库主体在该数据库中拥有架构,无法删除的解决方法
- 无法打开用户默认数据库(用户 计算机名字\Administrator登录失败) 解决方法之一
- U盘做系统时显示“安装程序无法定位现有系统分区,也无法创建新的系统分区”的解决方法
- Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除。解决方法
- SQL Server无法打开用户默认数据库的解决方法
- win7安装系统出现“安装程序无法创建新的系统分区,也无法定位现有的系统分区”解决方法
- 错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除。解决方法(转)
- 无法打开用户默认数据库的解决方法
- 安装程序无法创建一个DCOM用户帐号来注册 D:/....的解决方法