Triggers MarkLogic-xdmp:触发器的生成权限
我试图在数据更改时在后端触发一个进程 这是我目前正在使用的一个工作触发器Triggers MarkLogic-xdmp:触发器的生成权限,triggers,permissions,marklogic,privileges,Triggers,Permissions,Marklogic,Privileges,我试图在数据更改时在后端触发一个进程 这是我目前正在使用的一个工作触发器 xquery version "1.0-ml"; import module namespace trgr="http://marklogic.com/xdmp/triggers" at "/MarkLogic/triggers.xqy"; if (xdmp:database() eq xdmp:database("nbcu-test-ml-triggers")) then () else fn
xquery version "1.0-ml";
import module namespace trgr="http://marklogic.com/xdmp/triggers"
at "/MarkLogic/triggers.xqy";
if (xdmp:database() eq xdmp:database("nbcu-test-ml-triggers"))
then ()
else fn:error((), 'NOTTRIGGERSDB', xdmp:database()) ,
trgr:create-trigger(
"typeahead_modify",
"Update Typeahead Document",
trgr:trigger-data-event(trgr:directory-scope("/triplestore/", "1"), trgr:document-content("modify"), trgr:post-commit()),
trgr:trigger-module(
xdmp:database("nbcu-test-ml-modules"),
"/ext/",
"sample-trigger.xqy"),
fn:true(),
xdmp:default-permissions(),
fn:true() )
然而,在它触发的模块的末尾,我想调用一个xdmp:spawn函数来执行一些异步处理
我对权限管理非常陌生,但我尝试向权限集中添加xdmp:privilege
,但没有成功
是否有人可以帮助建议如何将xdmp:Spawn execute
权限添加到此触发器
谢谢
编辑:我使用mlgradle部署/ext/sample触发器。xqy运行触发器的用户的范围是导致文档插入/更新/删除/属性更改的用户。此规则的唯一例外是您实际定义用户的数据库联机事件 因此,xdmp:spawn权限必须附加到(直接或间接)附加到上述用户的角色
要进行故障排除,可以将xdm:log(xdmp:get-current-user())添加到触发器模块中,以确保您了解用于调用代码的用户。然后将xdmp:spawn权限添加到该用户的角色之一。运行触发器的用户的作用域是导致文档插入/更新/删除/属性更改的用户。此规则的唯一例外是您实际定义用户的数据库联机事件 因此,xdmp:spawn权限必须附加到(直接或间接)附加到上述用户的角色
要进行故障排除,可以将xdm:log(xdmp:get-current-user())添加到触发器模块中,以确保您了解用于调用代码的用户。然后将xdmp:spawn权限添加到该用户的角色之一。
get-current-user()
帮助我意识到我没有运行我认为是的用户。。。谢谢你的指导!没问题。很高兴它有帮助get-current-user()。。。谢谢你的指导!没问题。很高兴它有帮助!