繁体   English   中英

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

[英]MongoDB Activating Authentication sets replica to 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 state 中,在 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 副本集,带有简单的密码验证

(cc @datdinhquoc 我刚刚找到的 3 年前的答案)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM