如何在MarkLogic中获取特定角色的用户列表并移除该角色下的用户
MarkLogic 角色用户检索与移除方案
一、检索特定角色下的所有用户
MarkLogic 提供了sec:role-get-users()函数,正好满足根据角色查询关联用户的需求,和你当前使用的sec:user-get-roles()是反向操作。
示例代码:
xquery version "1.0-ml"; import module namespace sec="http://marklogic.com/xdmp/security" at "/MarkLogic/security.xqy"; -- 替换为你的目标角色名 sec:role-get-users("目标角色名")
该函数会返回目标角色下所有用户的用户名序列。
二、批量移除用户的指定角色
结合检索结果,可遍历所有关联用户,逐一移除目标角色。示例代码如下:
xquery version "1.0-ml"; import module namespace sec="http://marklogic.com/xdmp/security" at "/MarkLogic/security.xqy"; let $target-role := "目标角色名" let $users-in-role := sec:role-get-users($target-role) return for $user in $users-in-role return sec:user-remove-roles($user, ($target-role))
注意事项
- 执行操作需要具备security-admin或manage-admin级别的权限,否则会因权限不足执行失败。
- 建议先执行检索代码确认用户列表,再执行移除操作,避免误操作。
内容的提问来源于stack exchange,提问作者Balan
相关产品推荐
相关产品推荐

