我需要一个ACL (访问控制列表)系统的数据库设计帮助。
业务规则
让我解释一下这些要求:
系统中的任何业务对象都将得到一个ACL,该ACL明确定义了谁可以访问该对象。
我们的系统有一组用户组,ACL将指定哪些组可以访问对象。
任何用户都可以是N组中的成员。
如果不包括在ACL中,用户甚至都不会看到对象。
当前注意事项
有些表可以容纳成千上万这样的业务对象,因此我需要一个能够快速为它们选择“可见”行的设计。
我的想法是向带有业务对象的表中添加一个ACL_ID。假设我为Orders获得了一个表,我需要控制可访问性:
CREATE TABLE Orders
(
ID int not nu