You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python初始化MongoDB副本集并创建首个管理员用户?

如何通过PyMongo直接创建MongoDB副本集的首个管理员用户

当然可以直接通过PyMongo创建首个管理员用户啦!不需要先在Mongo Shell里操作,只要你的副本集当前处于未开启认证的状态(毕竟还没管理员用户),就可以按照下面的步骤来:

步骤1:连接到副本集主节点

首先用PyMongo建立副本集连接,记得替换成你的节点地址和副本集名称:

import pymongo

# 替换为实际的副本集节点IP/端口和副本集名称
client = pymongo.MongoClient(
    'mongodb://node1:27017,node2:27017/?replicaSet=your_replica_set_name'
)

如果你不确定哪个节点是主节点,可以执行以下命令确认:

is_master = client.admin.command('isMaster')
print(f"当前主节点地址: {is_master['primary']}")

步骤2:创建管理员用户

管理员用户需要创建在admin数据库下,使用create_user方法即可,你可以根据需求选择合适的角色:

# 切换到admin数据库
admin_db = client.admin

# 创建超级管理员(拥有最高权限)
admin_db.create_user(
    username='admin_root',
    password='YourSecurePassword_123',  # 务必使用强密码
    roles=[{'role': 'root', 'db': 'admin'}]
)

如果只需要该用户拥有管理所有数据库用户的权限,也可以把角色换成userAdminAnyDatabase:

roles=[{'role': 'userAdminAnyDatabase', 'db': 'admin'}]

这个create_user方法和Mongo Shell里的db.createUser()逻辑完全一致,效果是一样的。

步骤3:开启认证后的连接方式

创建完管理员用户后,后续再连接副本集就需要携带认证信息了:

# 带认证的副本集连接
authenticated_client = pymongo.MongoClient(
    'mongodb://admin_root:YourSecurePassword_123@node1:27017,node2:27017/?replicaSet=your_replica_set_name'
)

注意事项

  • 必须在主节点上执行创建用户的操作,因为副本集的写操作只能在主节点进行,PyMongo一般会自动路由到主节点,但手动确认更稳妥。
  • 密码要符合MongoDB的密码复杂度要求,避免使用弱密码,降低安全风险。

内容的提问来源于stack exchange,提问作者Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:24:19