我正在寻找如何获得这样的东西:
{ _id: "myApp.appUser",
role: "appUser",
db: "myApp",
privileges: [
{ resource: { db: "myApp" , collection: "" },
actions: [ "find", "createCollection", "dbStats", "collStats" ] },
{ resource: { db: "myApp", collection: "logs" },
actions: [ "insert" ] },
{ resource: { db: "myApp", collection: "data" },
actions: [ "insert", "update", "remove", "compact" ] },
{ resource: { db: "myApp", collection: "system.js" },
actions: [ "find" ] },
],
roles: []
}
此JSON属于MongoDB文档(https://docs.mongodb.com/v3.2/reference/system-roles-collection/#examples)。
但我没有找到获取此信息的查询。
我知道我能做到:
db.getSiblingDB('databaseName').getRole('rolename', { showPrivileges: true } )
但我不想要这个,因为我需要同一行中的所有权限(动作)。
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:0)
您可以采取几种方法来查询数据集。
首先,您可以运行以下 rolesInfo
命令,该命令返回角色继承和appUser
数据库中定义的角色myApp
的权限:
db.runCommand(
{
"rolesInfo": {
"role": "appUser",
"db": "myApp"
},
"showPrivileges": true
}
)
另一种方法是查询管理数据库中的 system.roles
集合:
use admin
db.getCollection('system.roles').find({ "role": "appUser" })