使用多数据库应用程序的访问控制

Bil*_*l F 0 acl lotus-notes xpages

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

我在某处阅读了有关设计数据库和多个数据存储库的此类设置,但我无法找到该参考.

Per*_*ten 5

访问是根据每个数据库级别确定的 - 而不是跨数据库.

因此,如果您使用Reader权限为MainDB.nsf中的某个人分配角色,并在另一个数据库中为具有相同名称且具有编辑权限的角色分配角色,则该人员将具有对MainDB.nsf的读者权限和对另一个数据库的编辑者权限.

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

  • Per有正确的答案.它是特定于数据库的.它也可以是特定于xpage的,因为您可以在每个XPage上设置ACL.关注未来需求的一件事是sessionAsSigner是你的朋友.因此,您可以使用它作为签名者的访问权限运行.因此,在Java中,您可以正确编码以确定"ACL逻辑",并在代码通过时使用SAS提供访问权限. (2认同)