您是否知道在对象上实现CRUD级别锁定的任何设计模式,这意味着,对于一个对象实例,我应该能够为每个操作指定不同的访问控制级别(Create,Read,Update,删除)。例如,人A可以读取和更新对象Z,但可以不删除它。人B可以读取,更新和删除对象X,Y和Z。
我担心的是当数据量很大时会发生什么。换句话说,我正在寻找有效的东西。
我曾经为对象实现了这种访问控制,我知道它是如何完成的,我只是想知道是否确实存在某种设计模式。
答案 0 :(得分:1)
有大量可用的信息。 This是一个合理的起点。对于大型数据集,可能难以提高效率 - 在运行时最大限度地提高性能意味着在设计过程中会花费更多的开发人员时间。可悲的是,没有银弹。
Lotus Notes中提供了良好对象级控制的一个示例,它以您描述的方式提供对对象的精细访问。 (Notes并不是因其出色的性能而闻名,但这种系统非常安全。)
答案 1 :(得分:0)
我认为这是任何“服务”授权的特例。
它要求您有一些了解调用者凭据的方法。如果您要避免在每个方法上明确地传递此类信息,那么在确定授权时您需要一些隐含的“上下文”。在逐个人的基础上管理这些功能往往变得非常不合适,因此您往往需要基于角色的访问控制以及将用户组分配到角色的方式。
所有这一切都意味着设计模式不是一个可以利用的框架。 Spring和Java EE等框架内置了这些功能,反过来可能会使用LDAP来利用目录。
所以我的“模式”不是重新发明轮子,找到合适的框架并使用它。