【发布时间】:2018-02-22 03:30:28
【问题描述】:
我正在尝试使用 python 设置一个 mongoDB RepSet,我连接了 2 个副本,但我不知道如何创建第一个使用 pymongo 的管理员用户。
我知道我可以使用 mongo shell 创建第一个管理员用户,如下所示
db.getSiblingDB("admin").createUser({
user : "main_admin",
pwd : "abc123",
roles: [ { role: "root", db: "admin" } ]
});
用mongo shell创建管理员用户后,使用这条python行client.testdb.add_user('newTestUser', 'Test123', roles=[{'role':'readWrite','db':'testdb'}])创建用户没有问题。
但是,有没有办法用 pymongo 创建第一个管理员用户?
注意事项:
启动mongod的命令:
mongod --bind_ip 0.0.0.0 --replSet MainRepSet --auth --clusterAuthMode keyFile \
--keyFile /etc/secrets-volume/internalAuthMongoDBKeyfile --setParameter authenticationMechanisms=SCRAM-SHA-1 > /tmp/log &
用于创建rs的python代码
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
conf = {'_id': "MainRepSet", 'members': [
{ '_id': 0, 'host' : "operations-mongo-0.operations- mongo.governor.svc.cluster.local:27017" },
{ '_id': 3, 'host' : "operations-mongo-3.operations- mongo.governor.svc.cluster.local:27017" }
]}
client.admin.command("replSetInitiate",conf)
【问题讨论】: