Marklogic 元素级安全问题

Marklogic 元素级安全问题,marklogic,Marklogic,我们在/record/historical上有一个受保护的路径,没有名称空间,一个角色具有读取权限,“admin”角色具有读取、更新和插入权限 我们有一个用户“部署”,具有“管理员”角色 当以“部署”登录查询控制台并查询/record时,我可以得到完整/record文档(包括/record/historical)的结果,但当我查询/record/historical(或其下的任何内容)时,我没有得到任何结果 此外,这个问题在MarkLogic的不同实例(所有9.0-4)中也不一致。除了用户和受保

我们在
/record/historical
上有一个受保护的路径,没有名称空间,一个角色具有读取权限,“admin”角色具有读取、更新和插入权限

我们有一个用户“部署”,具有“管理员”角色

当以“部署”登录查询控制台并查询
/record
时,我可以得到完整
/record
文档(包括
/record/historical
)的结果,但当我查询
/record/historical
(或其下的任何内容)时,我没有得到任何结果


此外,这个问题在MarkLogic的不同实例(所有9.0-4)中也不一致。除了用户和受保护的路径之外,我还应该检查哪些差异?

要配置元素级安全性,您需要同时设置

首先检查实例之间的受保护路径和查询角色集配置。您可以使用管理界面查看此配置,并在安全性下查看,然后查询角色集

查询角色集需要使用索引在受保护路径中高效地跨数据执行查询。如果未定义查询角色集,则跨受保护数据的搜索查询将不会返回任何结果。这解释了为什么当您从数据库中读取文档时,您描述的受保护路径安全性按预期工作,但在查询(搜索)数据库时不按预期工作的行为

即使您授予用户管理员角色,仍然需要查询角色集。但我强烈建议您考虑,如果授予用户,管理员角色实际上是必需的。通常情况并非如此,作为最佳实践,您应该努力为用户提供完成工作所需的最低电量

要详细了解MarkLogic中的安全性和元素级安全性,我建议您查看以下示例和文档:

  • 其中包括一个关于元素级安全性的插曲
  • 在产品文档中显示的

检查了查询角色集,并且它确实包括在受保护路径中授予权限的两个角色。n/m,问题出在查询角色集上。拼写很重要。谢谢