我创建了两个用户,即xyz@pqr.com和abc@rew.com,其角色为admin。我试图删除一个用户,但它不允许删除它。该应用程序显示以下错误:" SEC-LASTADMIN :(错误:FOER0000)无法删除最后一个管理员用户:xyz@pqr.com(尽管用户不是最后一个)" 。
我还发现,当我们在Marklogic(第1300行)的security.xqy模块中更改以下代码时,它的工作正常 之前= if(fn:count($ admin-users)eq 1) 之后= if(fn:count($ admin-users)eq 1和$ admin-users [0] / sec:user-id eq $ user / sec:user-id)
我正在使用Marklogic 8.0-3。
这是一个Security.xqy模块错误吗? 如果没有其他方法可以解决这个问题
答案 0 :(得分:1)
这是一个已知问题。问题是您的用户继承了admin角色,而不是直接拥有它。然而,安全库通过查看直接具有管理员角色的用户来计算管理员。解决此问题的方法是确保用户不会继承管理员角色,而是直接使用或完全没有管理员角色。
我建议不要给用户管理员角色。尽可能少地申请权限,并在必要时使用Amps允许用户执行超出其权限的操作。
HTH!
答案 1 :(得分:0)
产品的要求是某些用户必须直接拥有管理员角色。换句话说,这不是一个“已知问题”,而是“按设计工作”的情况。
在生产系统中确保某些用户直接拥有管理员角色似乎不是一个大问题,而且在您的情况下听起来只是您不清楚需求并且正在询问。我们目前没有计划更改此要求,因为似乎没有任何令人信服的理由进行此更改。