如何在MarkLogic中为应用程序用户设置session field()函数的权限?我似乎无法在MarkLogic文档中找到这些信息,而且当我尝试使用该函数时,目前会遇到以下错误:
SEC-PRIV: xdmp:set-session-field("myfield","myvalue")需要特权:http://marklogic.com/xdmp/privileges/xdmp-set-session-field in /my_xquery_file.xqy,在48:61.0ml
thx
附注:好的,对于任何需要这些信息的人,我在第28页的MarkLogic文档“理解和使用安全指南”中找到了它。在浏览器中打开MarkLogic管理面板;转到Configure>Security->;向下滚动找到要授予的函数/特权,然后单击特定的函数/特权。在下一个屏幕中,如果希望xquery脚本执行函数,请检查应用程序用户。我的应用程序现在可以将数据存储在用户会话中(set-session字段特权)。
发布于 2012-04-03 05:52:31
是的,你给自己的答案是正确的。
指向该手册的PDF副本的链接可以在这里找到:http://community.marklogic.com/docs (直接链接:http://community.marklogic.com/pubs/5.0/books/security.pdf )。可搜索的文档站点也是值得注意的。在这里可以找到:http://docs.marklogic.com/5.0doc/docapp.xqy (直接链接到Execute部分:http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http://pubs/5.0doc/xml/security/execute.xml )。
但是请注意,MarkLogic的安全模型是基于角色的。您将Execute特权分配给角色,您与之身份验证的用户需要具有此角色。因此,如果您的用户具有应用程序用户角色,则上述内容是正确的。
哈哈!
发布于 2012-04-03 23:03:47
与其赋予所有具有app-user角色的用户创建会话字段的能力,不如考虑创建一个库函数来创建特定类型的会话字段(可能是针对特定用户),并将该函数添加到可以创建会话字段的角色中。Amps允许您暂时提升特定函数调用的权限。它们允许用户在应用程序的上下文中执行特权操作,而不必授予该用户在任何上下文中执行相同任务的权限。您可以在上面提到的理解和使用安全指南第5.2节中阅读更多有关amps的内容。
https://stackoverflow.com/questions/9984821
复制相似问题