我正在尝试为某个数据库获取用户。
我能够找到列出数据库或创建用户的函数但没有列出用户的函数,我想调用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!
答案 0 :(得分:5)
您可以执行usersInfo
命令来获取用户数据。像:
db.command('usersInfo')
它会返回一个这样的结果:(我创建了testingdb
进行测试)
{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'}]}