我在Marklogic模块数据库中有一个配置文件,执行此操作所需的权限是什么
xdmp:invoke-function(function(){fn:doc('/config/context.xml')},<options xmlns="xdmp:eval"><database>{xdmp:modules-database()}</database></options>)
我正在设置以下权限
我缺少哪些其他权限,好像我以rest-admin或admin身份登录一切正常?
答案 0 :(得分:1)
我正在使用ml-gradle加载所有模块数据库(包括/config/context.xml
)。默认情况下,ml-gradle将使用rest-admin,read,rest-admin,update,rest-extension-user,execute
但事实证明我们可以使用mlModulePermissions
以下是我在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!