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

时间:2017-04-25 16:19:19

标签: xquery marklogic

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

1 个答案:

答案 0 :(得分:3)

您只需要查询安全数据库中的文档。作为管理员,您可以将查询放在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>)