如何构造xquery以检索用户名和角色名称列表。提前感谢任何示例xquery代码。
答案 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>)