+-
python – 使用PyMongo列出某些DB的用户
我正在努力实现的目标

我正在尝试为某个数据库获取用户.

到目前为止我做了什么

我能够找到列出数据库或创建用户的功能但没有列出用户的功能,我想要调用一个任意命令,比如show users,但我可以找到任何方法来实现它.

目前的代码

#/usr/bin/python

from pymongo import MongoClient

client = MongoClient("localhost",27017)
db = client.this_mongo

试错

我可以看到数据库名称并打印它们,但没有进一步:

db_names = client.database_names()

#users = db.command("show users")
for document in db_names:
    print(document)
#cursor = db.add_user('TestUser','Test123',roles={'role':'read'})

如果只有一个函数可以获取用户光标,那么我可以迭代它就会很棒.

编辑

工作方案

#/usr/bin/python

from pymongo import MongoClient

client = MongoClient("localhost",27017)
db = client.this_mongo

# This is the line I added with the help of @salmanwahed
listing = db.command('usersInfo')

for document in listing['users']:
    print document['user'] +" "+ document['roles'][0]['role']

谢谢大家和@salmanwahed!

最佳答案
您可以执行 usersInfo命令来获取用户数据.喜欢:

db.command('usersInfo')

它会返回一个这样的结果:(我创建了testdb用于测试)

{u'ok': 1.0,
 u'users': [{u'_id': u'testingdb.TestUser',
   u'db': u'testingdb',
   u'roles': [{u'db': u'testingdb', u'role': u'read'}],
   u'user': u'TestUser'}]}
点击查看更多相关文章

转载注明原文:python – 使用PyMongo列出某些DB的用户 - 乐贴网