我有一个mongodb分片群集,有mongos机器,复制集中的mongo节点和配置服务器。 MongoDB版本是3.02
那个设置它的人不久前离开了公司,现在我不能做简单的事情,比如 show dbs 或 show collections
我在所有这些Debian机器上都有操作系统root,所以我想知道如何重置mongo的root密码,以便管理数据库。
使用权限较低的用户,访问此数据库的应用似乎工作正常。我知道这个特定用户的密码。
这是一个生产设置,因此我无法承受将其保持超过几秒钟,最长时间。
答案 0 :(得分:2)
这取决于用户类型。例如,如果您使用的是 SCRAM ,则重置密码的基本步骤将是:
答案 1 :(得分:0)
这可能不是完美的答案,因为我无法测试它。基本问题当然是,您无法将系统置于维护模式,您可以在其中更改管理员密码...但是配置文件参数security.transitionToAuth可以将滚动内容添加到配置文件中(或多个)。
使用security.transitionToAuth
运行的mongod或mongos不会强制执行用户访问控制。 用户可以在没有任何访问控制检查的情况下连接到您的部署,并执行读取,写入和管理操作。
答案 2 :(得分:0)
我认为这可行:
https://dba.stackexchange.com/questions/62976/how-can-i-enter-mongo-as-a-superuser-or-reset-users
答案 3 :(得分:0)
这里有两个选项
如果您计划升级到3.4,则无需停机:
--transitionToAuth
启动所有成员(这将允许经过身份验证和未经过身份验证的流量一段时间)如果您需要在没有升级的情况下对现有MongoDB执行此操作:
keyFile
选项