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

如何在MarkLogic中配置细粒度权限以仅允许更新指定数据库配置

MarkLogic 指定数据库配置更新的细粒度权限配置指南

要实现仅允许用户更新指定数据库的配置,需通过移除过宽权限角色+创建细粒度自定义角色的方式实现,具体步骤如下:

1. 移除过宽的manage-admin角色

*manage-admin*角色拥有所有管理资源的操作权限,这是用户能修改其他数据库的核心原因,先将该角色从custom-rest-admin用户中移除:

curl --anyauth --user admin:admin-password -X PUT -H "Content-Type: application/json" -d '{
  "role-name": ["rest-writer", "rest-admin"]
}' "http://localhost:8002/manage/v2/users/custom-rest-admin/roles"

2. 创建针对目标数据库的自定义管理角色

创建一个仅能管理MY_DATABASE_NAME的自定义角色(例如*custom-db-admin-MY_DATABASE*):

curl --anyauth --user admin:admin-password -X POST -H "Content-Type: application/json" -d '{
  "role-name": "custom-db-admin-MY_DATABASE",
  "description": "仅允许更新MY_DATABASE_NAME数据库配置的角色"
}' "http://localhost:8002/manage/v2/roles"

3. 为自定义角色添加细粒度权限

给自定义角色添加*manage-update*权限,目标指定为MY_DATABASE_NAME的管理资源URI:

curl --anyauth --user admin:admin-password -X POST -H "Content-Type: application/json" -d '{
  "privilege-name": "manage-update",
  "action": "http://marklogic.com/manage/actions/update",
  "resource": "http://marklogic.com/manage/v2/databases/MY_DATABASE_NAME"
}' "http://localhost:8002/manage/v2/roles/custom-db-admin-MY_DATABASE/privileges"

说明:*manage-update*是MarkLogic中用于修改管理资源的细粒度权限,通过指定resource为目标数据库的管理URI,限制权限仅作用于该数据库。

4. 将自定义角色分配给目标用户

把刚创建的自定义角色分配给custom-rest-admin用户:

curl --anyauth --user admin:admin-password -X PUT -H "Content-Type: application/json" -d '{
  "role-name": ["rest-writer", "rest-admin", "custom-db-admin-MY_DATABASE"]
}' "http://localhost:8002/manage/v2/users/custom-rest-admin/roles"

5. 验证权限效果

  • 测试更新目标数据库(应成功):
curl --anyauth --user custom-rest-admin:pass -X PUT -d@"./database-config.json" -i -H "Content-type: application/json" "http://localhost:8002/manage/v2/databases/MY_DATABASE_NAME/properties"
  • 测试更新其他数据库(应返回权限不足错误):
curl --anyauth --user custom-rest-admin:pass -X PUT -d@"./database-config.json" -i -H "Content-type: application/json" "http://localhost:8002/manage/v2/databases/OTHER_DATABASE_NAME/properties"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:06:16