【问题标题】:Listing users for certain DB with PyMongo使用 PyMongo 列出特定数据库的用户
【发布时间】:2016-11-28 11:00:22
【问题描述】:

我正在努力实现的目标

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

到目前为止我做了什么

我能够找到列出数据库或创建用户的功能,但没有找到用于列出用户的功能,我考虑过调用任意命令,例如 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!

【问题讨论】:

  • 我很想知道我的回答是否对您有帮助。
  • @salmanwahed,抱歉耽搁了,我必须先解决一些 python json 问题,然后才能告诉你没关系,我会在一分钟内更新文档,显示工作结果特定数据库的用户列表。

标签: python mongodb pymongo database


【解决方案1】:

您可以执行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'}]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-07
    • 2014-02-25
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    相关资源
    最近更新 更多