我有一个mongodb分片集群,有mongo机器,mongo节点在复制集中和配置服务器。MongoDB版本3.02建立这个的家伙离开了公司一段时间前,现在我不能做简单的事情,如显示dbs或显示收藏我在所有这些Debian机器上都有操作系统root,所以我想知道如何重置mongo的root密码,这样我就可以管理数据库了。访问此数据库的应用程序似乎工作正常,使用具有低权限的用户。我知道这个用户的密码。这是一个生产设置,所以我不能保持它下来超过几秒钟,最多几分钟。
s5a0g9ez1#
这取决于用户的类型。例如,如果您使用 SCRAM,重置密码的基本步骤如下:
yyhrrdl82#
我想这可能行得通:1.停止MongoDB示例1.从MongoDB配置中删除--auth和/或--keyfile选项以禁用身份验证1.启动示例而不进行身份验证1.根据需要编辑用户1.在启用身份验证的情况下重启示例https://dba.stackexchange.com/questions/62976/how-can-i-enter-mongo-as-a-superuser-or-reset-users
8tntrjer3#
这可能不是完美的答案,因为我无法测试它。基本问题当然是,,你不能把你的系统进入维护模式,在那里你可以改变管理员密码.但是有一个配置文件参数security.transitionToAuth,你可以用滚动的东西添加到你的配置文件中。运行security.transitionToAuth的mongod或mongos不会强制执行用户访问控制。用户可以连接到您的部署而无需任何访问控制检查,并执行读、写和管理操作。
security.transitionToAuth
3b6akqbq4#
这里有两个选择
如果您计划升级到3.4,则可以在不停机的情况下完成:
--transitionToAuth
keyFile
fhg3lkii5#
1.连接到托管MongoDB示例的计算机1.使用以下命令打开/etc/文件夹中的MongoDB配置文件:sudo nano mongod.conf1.注解掉下面的代码:
/etc/
sudo nano mongod.conf
# security: # authorization: enabled
1.停止MongoDB服务:sudo service mongod stop1.启动MongoDB服务:sudo service mongod start1.使用Robo3T或同等产品连接到数据库。通过连接到admin集合,创建一个新的admin超级用户:
sudo service mongod stop
sudo service mongod start
db.createUser({ user:"admin", pwd:"password", roles:[{role:"root", db:"admin"}] });
1.返回并取消注解步骤3中的行。然后重复步骤4和5。1.现在,您应该能够使用在步骤6中创建的新用户进行身份验证,并拥有对数据库的完全访问权限。
systemctl --type=service --state=active
mongod.service
/var/log/mongodb/mongodb.log
5条答案
按热度按时间s5a0g9ez1#
这取决于用户的类型。例如,如果您使用 SCRAM,重置密码的基本步骤如下:
yyhrrdl82#
我想这可能行得通:
1.停止MongoDB示例
1.从MongoDB配置中删除--auth和/或--keyfile选项以禁用身份验证
1.启动示例而不进行身份验证
1.根据需要编辑用户
1.在启用身份验证的情况下重启示例
https://dba.stackexchange.com/questions/62976/how-can-i-enter-mongo-as-a-superuser-or-reset-users
8tntrjer3#
这可能不是完美的答案,因为我无法测试它。基本问题当然是,,你不能把你的系统进入维护模式,在那里你可以改变管理员密码.但是有一个配置文件参数security.transitionToAuth,你可以用滚动的东西添加到你的配置文件中。
运行
security.transitionToAuth
的mongod或mongos不会强制执行用户访问控制。用户可以连接到您的部署而无需任何访问控制检查,并执行读、写和管理操作。3b6akqbq4#
这里有两个选择
如果您计划升级到3.4,则可以在不停机的情况下完成:
--transitionToAuth
启动所有成员(这将在一段时间内允许身份验证和非身份验证流量)如果您需要在现有MongoDB上执行此操作,而无需升级:
keyFile
选项禁用身份验证fhg3lkii5#
步骤
1.连接到托管MongoDB示例的计算机
1.使用以下命令打开
/etc/
文件夹中的MongoDB配置文件:sudo nano mongod.conf
1.注解掉下面的代码:
1.停止MongoDB服务:
sudo service mongod stop
1.启动MongoDB服务:
sudo service mongod start
1.使用Robo3T或同等产品连接到数据库。通过连接到admin集合,创建一个新的admin超级用户:
1.返回并取消注解步骤3中的行。然后重复步骤4和5。
1.现在,您应该能够使用在步骤6中创建的新用户进行身份验证,并拥有对数据库的完全访问权限。
故障排除
systemctl --type=service --state=active
。如果它已经启动,它将作为mongod.service
出现在列表中。/var/log/mongodb/mongodb.log
上找到,但在这种情况下不太可能有帮助。