MongoDB 激活身份验证将副本设置为 OTHER



从今年年初开始,我就一起使用MongoDB和SolR。尽管这个问题是关于我自过去几天以来在MongoDB上遇到的一个特定问题,但我找不到解决方案。

它的设置如下:2个副本集聚类。(我不知道这是否是不言自明的,但我会让专家判断是否有更好的表达方式哈哈(

看,出于一些明显的最佳实践原因,我决定在我的MongoDB实例上启用身份验证。我按照MongoDB文档中描述的步骤,了解如何创建具有特定权限和所有内容的用户。

rs0:PRIMARY> db.createUser({ user: "louis", pwd: "WhatIsGod", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
Successfully added user: {
"user" : "louis",
"roles" : [
"userAdminAnyDatabase",
"dbAdminAnyDatabase",
"readWriteAnyDatabase"
]
}

到目前为止,你可以告诉我没有任何问题。嗯,我也是这么想的! 成功创建用户后,我停止了MongoDB服务,以便修改mongo.conf文件并将disabled替换为enabled然后重新启动服务。

服务重新启动后,我看到我的副本集处于OTHER状态,并且在 Mongo Shell 中几乎无法在不弹出错误的情况下执行任何操作,也没有一个命令(下面的几个示例(

2019-10-07T16:34:16.312+0200 E QUERY    [thread1] Error: not master and slaveOk=false :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
2019-10-07T16:22:15.583+0200 E QUERY    [thread1] Error: Could not retrieve replica set config: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { replSetGetConfig: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"

这基本上保持不变,直到我恢复mongo.conf文件中的更改。

所以在搜索之后,我在这里问这是否发生在任何人身上?

如果没有,我可以得到任何关于我可以检查此问题的建议吗?

我实际上发现了发生了什么。

由于使用副本集,身份验证需要一个文件供两个副本确认用户及其权限(据我所知(

您可以在此处找到详细信息:具有简单密码身份验证的MongoDB副本集

(抄送@datdinhquoc我刚刚找到的3年前的答案(

最新更新