首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于MarkLogic权限的角色创建

基于MarkLogic权限的角色创建
EN

Stack Overflow用户
提问于 2019-11-08 12:52:08
回答 1查看 164关注 0票数 0

MarkLogic 9.0.8.2

我们开发了API来获取和设置MarkLogic中的数据,所有数据都以xml格式存储在MarkLogic中。

现在,我们希望通过以下操作向外部用户公开这个API端点

  • READ
  • INSERT
  • UPDATE
  • NODE-UPDATE
  • EXECUTE
  • ADMIN

因此,我们希望根据ReadOnly、ExecuteOnly等权限创建不同的用户凭据。

我们需要选择哪些角色和权限来确保它们能够执行允许的操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-15 11:20:52

注意:权限是关于文档访问的,权限是关于函数访问的。特定的执行权限仅适用于模块访问,而不适用于文档访问。

有许多方法来组织您的安全,但基本的基础通常是相当相似的。我将为您提供一个模式,我个人认为这是一个很好的实践,并且可能被证明是进一步扩展的一个良好的总体起点。

从没有属性本身的4个角色开始。将“读”、“插入”、“更新”和“节点更新”放在名称中。

在名称中创建具有“默认值”的第五个角色,并为上述四个角色赋予默认权限,其中功能与角色名称匹配(读角色的“读”,等等)。

然后为读者、作家和维护者等抽象概念创建更高级别的角色。读取器只继承读取角色,写入器继承读取器、插入、更新和默认设置。维护者继承了作家。删除是一种特殊的更新,不可区分。节点更新是更新的子集。我没有遇到允许节点更新的用例,但不是完全更新。

在这里,执行权限没有任何意义,因为这只适用于模块,而不适用于文档。执行特权用于允许使用特定功能(如sem:sparql、xdmp:http-get等)。将它们适当地应用于读者和作者角色。

避免对上述任何角色应用更危险的执行特权,如xdmp:spawn和xdmp:eval。如果您遇到了这样的需求,那么创建一个用于Amps的角色(您可以将' Amps‘放在某个名称中),并确保您只对Amps使用该角色,并且从不将其分配给角色或用户。

最后但并非最不重要的一点是,您通常在同一个数据库中有多个不同的数据集,您可能希望独立地控制对它们的文档访问。考虑查看“间隔安全性”,而不是在这种情况下为每个数据集创建一组不同的角色。

哈哈!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58766979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档