【问题标题】:Access Control with a multi database application具有多数据库应用程序的访问控制
【发布时间】:2014-08-17 19:26:25
【问题描述】:

我有一个包含所有 XPage 设计、代理、脚本库等的 mainDB.nsf。用户从这个数据库中选择一个应用程序。可能有一个或多个应用程序数据库。每个应用程序数据库都包含应用程序的实际数据,以及在 mainDB 中的自定义控件中访问的该数据的视图。 因此,当一个人对 mainDB 进行身份验证时,他们将获得所有安全权限,并假设 mainDB 中有一个名为 [Finance] 的角色。现在在 mainDB 中没有真正的数据文档,但在 PurchaseReq.nsf 中有,并且任何具有 [Finance] 角色的人都可以获得对 PurchaseReq.nsf 中所有文档的编辑权限。所以我在 mainDB.nsf 和 PurchaseReq.nsf 中都定义了角色。但是,我不希望具有 [Finance] 角色的人在 mainDB.nsf 中具有编辑权限,而仅在 PurchaseReq.nsf 中具有编辑权限。如果我将角色分配给 MainDB.nsf 中具有说读者权限的人,并复制 PurchaseReq.nsf 中具有编辑权限的 ACL 条目,则用户在 PurchaseReq.nsf 中打开一个文档,他们将拥有读者或编辑权限。 其次,我是否必须在 mainDB.nsf 中拥有 [Finance] 角色。

我在某处读到过关于这种带有设计数据库和多个数据存储库的设置,但我找不到该参考资料。

【问题讨论】:

    标签: xpages lotus-notes acl


    【解决方案1】:

    访问是在每个数据库级别确定的,而不是跨数据库。

    因此,如果您在 MainDB.nsf 中将角色分配给具有 Reader 权限的人员,并在另一个数据库中分配具有相同名称且具有 Editor 权限的角色,那么此人将具有 MainDB.nsf 的读取器权限和编辑器权限其他数据库。

    该角色在 MainDB 中不是必需的,除非用于对该数据库中文档/设计元素的访问控制。

    【讨论】:

    • Per 有正确的答案。它是特定于数据库的。它也可以是特定于 xpage 的,因为您可以在每个 XPage 上设置 ACL。对于未来的需求,要记住的一件事是 sessionAsSigner 是你的朋友。因此,您可以使用它作为签名者的访问权限运行。因此,在 Java 中,您可以正确的代码来确定您的“ACL 逻辑”,并在代码通过时使用 SAS 授予访问权限。
    • @Per - 我很确定这就是它的工作方式,但在前往那条路之前,我想我会问一下。
    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2020-07-21
    相关资源
    最近更新 更多