Marklogic - 如何获取具有角色的用户列表

Marklogic - How to get list of user with roles

如何构造 xquery 来检索用户名和角色名列表。提前感谢任何示例 xquery 代码。

您只需查询安全数据库中的文档即可。作为管理员,您可以将查询放在 xdmp:invoke-function() 中,如下所示:

xquery version "1.0-ml";
import module namespace sec="http://marklogic.com/xdmp/security" at 
    "/MarkLogic/security.xqy";

xdmp:invoke-function(function() {
    for $user in //sec:user
    let $user-name := $user/sec:user-name/text()
    let $roles := sec:user-get-roles($user-name)
    return 
    <user>
      <user-name>{$user-name}</user-name>
      <roles>
        {for $role in $roles return <role>{$role}</role>}
      </roles>
    </user>
    }, 
    <options xmlns="xdmp:eval">
      <database>{xdmp:security-database()}</database>
    </options>)