【问题标题】:Can't create view, no permissions despite added permissions无法创建视图,尽管添加了权限,但没有权限
【发布时间】:2022-01-17 20:12:29
【问题描述】:

我在插入模板时遇到问题。当我运行tde.templateInsert 时,它返回无效权限作为响应,但我在数据库设置中启用了三重索引并向用户添加了权限(添加了tde-admintde-view)。

我正在一步一步地学习这个教程:https://developer.marklogic.com/learn/template-driven-extraction/

这是整个错误信息:

[javascript] SEC-INVALIDPERM: xdmp:document-insert("/test/myFirstTDE.json", document{object-node{"template":object-node{"context":text{"/Companies"} , ...}}}, (json:object(), json:object(), json:object(), ...), ("TDE", "http://marklogic.com/xdmp/tde")) - - 无效的权限

堆栈跟踪 在第 8 行未定义 在 xdmp:document-insert("/test/myFirstTDE.json", document{object-node{"template":object-node{"context":text{"/Companies"}, ...}}}, ( json:object(), json:object(), json:object(), ...), ("TDE", "http://marklogic.com/xdmp/tde"))

在 /MarkLogic/tde.xqy 第 58 行 在模板插入#4("/test/myFirstTDE.json", Document({"template":{"context":"/Companies", "collections":["source1"], "rows":[.. .]}}),[{capability:"read", roleId:"16742763111021671912"}, {capability:"update", roleId:"3680293911625886504"}, {capability:"read", roleId:"3680293911625886504"}, . ..], "TDE")

【问题讨论】:

  • 我看到了同样的结果。调查一下,但我认为您可以通过将第三个参数值从 xdmp.defaultPermissions() 更改为 null 来解决此问题。不过,听起来应该根据该参数的文档做同样的事情:“在模板文档上设置的任何权限。当提供 null 作为权限参数时,插入的模板将具有默认的权限集。”

标签: marklogic marklogic-9 marklogic-10


【解决方案1】:

我能够复制。 xdmp.defaultPermissions() 的处理方式似乎存在问题。我已经提交了一个错误,其中包含有关如何重现此行为的信息。

与此同时,您可以通过依赖 $permissions 参数的一些默认行为来解决此问题:

$permissions 在模板文档上设置的任何权限。当提供 null 作为权限参数时,插入的模板将具有默认权限集。 并使用null 而不是xdmp.defaultPermissions()

tde.templateInsert(
  "/test/myFirstTDE.json" ,
  myFirstTDE,
  null,
  ["TDE"]
)

或显式创建您要应用的权限:

var permissions = [
  xdmp.permission("admin", "read"),
  xdmp.permission("admin", "insert"),
  xdmp.permission("admin", "update")
];
tde.templateInsert(
  "/test/myFirstTDE.json" ,
  myFirstTDE,
  permissions,
  ["TDE"]
)

【讨论】:

  • 它仍然抛出相同的错误,例如:(权限被拒绝:更新/模板/用户模板)。当我的用户具有管理员角色时,我只能添加 tde 模板。当我同时设置 tde-admin 和 tde-view 时,我仍然有同样的错误。
  • 我只能在指定tde-admin 权限的情况下插入(使用最后一个示例,只需将admin 更改为tde-admin)。你以谁的身份运行命令,你有什么权限?
  • 好的,让我们创建新用户。需要哪些角色才能添加模板?
  • 需要tde-admin 角色才能将模板插入架构数据库。
  • 好的,但还有其他必要的角色吗?
猜你喜欢
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 2021-08-12
  • 2014-12-06
相关资源
最近更新 更多