如何在MarkLogic中为应用程序用户设置set-session-field()函数的权限?我似乎无法在MarkLogic文档中找到此信息,当我尝试使用此功能时,我当前收到以下错误:
SEC-PRIV:xdmp:set-session-field(“ myfield ”,“ myvalue ”) - 需要特权:http://marklogic.com/xdmp/privileges/xdmp-set-session-field 在/my_xquery_file.xqy中,48:6 [1.0-ml]
THX
P.S。得到这个: 好的,对于需要此信息的任何其他人,我在第28页的MarkLogic文档“理解和使用安全指南”中找到了它。在浏览器中打开MarkLogic管理面板;转到配置 - >安全性 - >执行权限;向下滚动以查找要授予的功能/权限,然后单击特定的功能/权限。在下一个屏幕中,如果您希望xquery脚本执行该功能,请检查app-user。 我的应用程序现在可以将数据存储在用户会话中(set-session-field privilege)。
答案 0 :(得分:1)
是的,你给自己的答案是正确的。
可在此处找到指向该手册PDF副本的链接:http://community.marklogic.com/docs(直接链接:http://community.marklogic.com/pubs/5.0/books/security.pdf)。可搜索的文档网站也值得注意。可在此处找到:http://docs.marklogic.com/5.0doc/docapp.xqy(指向执行权限部分的直接链接:http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http://pubs/5.0doc/xml/security/execute.xml)。
请注意,MarkLogic的安全模型是基于角色的。您将执行权限分配给角色,并且您进行身份验证的用户需要具有此角色。因此,如果您的用户具有app-user角色,那么上述内容是正确的。
HTH!
答案 1 :(得分:1)
您可能还会考虑创建一个库函数来创建特定类型的会话字段(可能针对特定用户)和 amp <而不是为所有用户提供app-user
角色创建会话字段的能力。 / em>该函数可以创建会话字段的角色。 Amps允许您临时提升特定函数调用的权限。它们允许用户在应用程序的上下文中执行特权事务,而无需为该用户提供在任何上下文中执行相同任务的一揽子权限。您可以在上面引用的Understanding and Using Security Guide的第5.2节中阅读有关放大器的更多信息。