Mongodb

使用pymongo獲取所有數據庫的所有使用者列表

  • October 20, 2021
db.command('usersInfo')

上面的命令給出了執行該命令的數據庫中的使用者列表。

command_result = db.command(
   {
       'usersInfo': {'user': 'user', 'db': 'mydatabase'},
       'showPrivileges': True
   } )

上面的程式碼提供了有關“mydatabase”數據庫中使用者的資訊。

但我想列出所有數據庫中的所有使用者。誰能告訴我我可以在 python 中使用什麼命令?

s = myclient.admin.command({'usersInfo' :{'forAllDBs: true'}}) print(s)

當我使用上述命令時,出現錯誤。我正在使用pymongo.

你可以試試這個:

for (let d of db.adminCommand( { listDatabases: 1 } ).databases ) {
  db.getSiblingDB(d.name).getUsers()
}

這是 mongo shell 中的 javascript 程式碼,將其轉換為 python 應該不是什麼大問題。

你幾乎擁有它……這有效:

s = myclient.admin.command('usersInfo', {'forAllDBs': True})
print(s)

command() 文件的幫助下

引用自:https://dba.stackexchange.com/questions/293833