读取模块数据库中的文件需要什么权限

What privilege need to read a file in module database

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

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

我正在设置以下权限

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

我正在使用 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

我认为 Ravi 自己找到了失踪的 link,但为了完整起见:

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

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

HTH!