【问题标题】:MarkLogic Element Security, from ambiguity to clarityMarkLogic Element Security,从模糊到清晰
【发布时间】:2020-10-27 04:20:36
【问题描述】:

用户:审核员

角色:rest-readerrest-writer

路径表达式/national-treasure/revenue
权限pii-reader ( update )pii-reader ( read )

我确认auditor 无法读取/national-treasure/revenue 元素。但它可以删除这个文件:

Jul 06, 2020 4:48:52 PM com.fc.allegro6.DeleteDocument deleteDocument
INFO: Delete Document /national-treasure/rocky-mountains.xml
Jul 06, 2020 4:48:52 PM com.marklogic.client.impl.DocumentManagerImpl delete
INFO: Deleting /national-treasure/rocky-mountains.xml
Deleted

我想知道是否可以通过元素安全或特权来保护文档不被更新(删除)。

具有读取权限的pii-reader可以更新受保护的路径:

用户:auditor

角色:pii-reader

路径表达式:/national-treasure/revenue 权限pii-reader(read)

原始节点:

     <established>1885-01-01</established>
   </highlights>
   <revenue>CAN$6 billion/annual</revenue>
</national-treasure>

node-replace:

let $txn := "xquery version '1.0-ml';
             xdmp:node-replace(//revenue, <revenue>CAN$7 Trillion/annual</revenue>)"
……………………………
  <user-id>{xdmp:user("auditor")}</user-id>

node-replace 结果:

     <established>1885-01-01</established>
   </highlights>
   <revenue>CAN$7 Trillion/annual</revenue>
</national-treasure>

同样,node-delete 也会通过。

【问题讨论】:

    标签: security element updates marklogic


    【解决方案1】:

    不幸的是,元素级安全性只涉及read 对受保护路径中的元素和属性的访问。如果涉及 PII,您必须使用文档级权限来防止删除。

    我可以想象你有一个名为pii-updater 的独立角色。然后,用户需要拥有该角色才能更新或删除文档。

    HTH!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 2016-12-01
      • 2012-12-07
      • 2021-03-02
      • 1970-01-01
      • 2021-12-18
      相关资源
      最近更新 更多