读取模块数据库

时间:2016-07-01 14:38:16

标签: marklogic marklogic-8

我在Marklogic模块数据库中有一个配置文件,执行此操作所需的权限是什么

xdmp:invoke-function(function(){fn:doc('/config/context.xml')},<options xmlns="xdmp:eval"><database>{xdmp:modules-database()}</database></options>)

我正在设置以下权限

  • 未受保护的集合
  • 未受保护-URI
  • 未受保护的集合
  • 未受保护-URI
  • xdmp:卵
  • xdmp:产卵-在
  • xdmp:产卵事务
  • xdmp:HTTP-GET
  • xdmp:HTTP头
  • xdmp:HTTP的选项
  • xdmp:HTTP-删除
  • xdmp:HTTP-POST
  • xdmp:HTTP的放
  • xdmp:EVAL
  • xdmp:EVAL-在
  • xdmp:产卵事务
  • xdmp:调用
  • xdmp:调用-在
  • xdmp:调用模块变
  • xdmp:调用模块变文件
  • xdmp:调用事务
  • xdmp:XSLT-EVAL
  • xdmp:XSLT-EVAL-在
  • xdmp:XSLT-EVAL-交易
  • xdmp:负载
  • xdmp:XSLT的调用
  • xdmp:XSLT的调用式
  • xdmp:XSLT的调用的事务

我缺少哪些其他权限,好像我以rest-admin或admin身份登录一切正常?

2 个答案:

答案 0 :(得分:1)

我正在使用ml-gradle加载所有模块数据库(包括/config/context.xml)。默认情况下,ml-gradle将使用rest-admin,read,rest-admin,update,rest-extension-user,execute

加载所有模块

但事实证明我们可以使用mlModulePermissions

覆盖(ML-Gradle:Make it easy to override module permissions)

以下是我在gradle.properties档案中所做的事情

mlModulePermissions=rest-admin,read,rest-admin,update,rest-extension-user,execute,rest-reader

答案 1 :(得分:1)

我认为拉维自己找到了缺失的环节,但为了完整起见:

特权列表太长了。要允许与非管理员用户(有时也称为最低权限用户)一起运行xdmp:invoke-function,用户只需要xdmp:invoke权限。要允许使用该函数的<database>选项,您需要额外的xdmp:eval-in权限。 DMC上通常会记录所需的权限。例如,请参阅:http://docs.marklogic.com/xdmp:eval

但无论您授予用户的权限如何,它仍然需要具有read访问其尝试阅读的文档的角色。否则它根本看不到它们。为了读取配置文件而将rest-admin角色分配给用户可能有点过分。分配rest-reader角色,并添加授予该角色read访问权限的文档权限更好。尽管如此,最好是创建一个特定于应用程序的角色,将其分配给用户,并为该角色添加read文档权限。

HTH!