1

您是否知道任何用于在对象上实现 CRUD 级别锁定的设计模式,这意味着对于对象的一个​​实例,我应该能够为每个操作(创建、读取、更新、删除)指定不同的访问控制级别。例如,人 A 可以读取和更新对象 Z,但不能删除它。B 可以读取、更新和删除对象 X、Y 和 Z。

我担心的是当有大量数据时会发生什么。换句话说,我正在寻找有效的东西。

我曾经为对象实现过这种访问控制,我知道它是如何实现的,我只是想知道是否真的存在某种设计模式。

4

2 回答 2

1

有大量可用的信息。是一个合理的起点。对于大型数据集,很难让事情变得高效——在运行时最大化性能将意味着在设计期间花费更多的开发时间。可悲的是,没有灵丹妙药。

在 Lotus Notes 中可以找到一个良好的对象级控制示例,它以您描述的方式提供对对象的精细访问。(Notes 并不以其出色的性能而闻名,但在此类系统中非常安全。)

于 2009-08-22T09:02:53.647 回答
0

我认为这是授权任何“服务”的特例。

它要求您有某种方式了解调用者的凭据。如果您要避免在每种方法上显式传递此类信息,那么在确定授权时您需要一些可用的隐式“上下文”。逐个管理此类功能往往会变得非常笨拙,因此您往往需要基于角色的访问控制以及将用户组分配给角色的方法。

所有这些都意味着与其说是一种设计模式,不如说是一种可以利用的框架。Spring 和 Java EE 等框架内置了此类功能,它们反过来可以很好地利用 LDAP 目录。

所以我的“模式”是不要重新发明轮子,找到一个合适的框架并使用它。

于 2009-08-22T09:04:35.297 回答