You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在特定环境下禁止指定用户使用MarkLogic 10的declareUpdate()?

MarkLogic 10 拦截指定用户调用declareUpdate()的权限配置方案

declareUpdate()是MarkLogic中用于显式声明当前脚本为更新事务的内置语句,要拦截指定用户调用该语句、触发执行报错,只需移除对应账号关联角色的对应权限即可,具体操作如下:

需移除的核心权限

  • 首先收回用户/所属角色的xdmp:update权限,这是执行所有更新事务的基础前置权限,用户缺失该权限时,只要脚本调用declareUpdate()启动更新事务,会直接抛出SEC-PERMISSIONDENIED权限不足错误。
  • 额外需要排查并移除用户关联的其他更新类权限,避免用户通过隐含更新的操作绕过限制:
    • any uri权限的更新、执行权限
    • 指定集合、目录、文档的插入、更新、删除权限
    • admin、rest-admin、manage-admin等高权限角色内置的更新权限

效果验证

使用目标用户身份执行测试脚本:

declareUpdate();
xdmp.documentInsert("/test/permission-check.json", {"status": "test"});

权限配置正确的场景下,执行脚本会立即返回权限拒绝的报错,符合拦截要求。

配置建议

建议不要直接修改系统默认角色的权限规则,可以单独创建一个仅含查询权限的自定义角色,给需要限制的用户绑定该角色,同时收回原有带更新权限的角色,避免配置改动影响其他业务场景。

内容的提问来源于stack exchange,提问作者user3095863

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:54:00