0

我已经看到了一些使用具有如下结构的权限表的行级 ACL 实现

User_Id 
Subject_Class
Subject_Id
Permission_Id

其中 Permission_Id 是(读取、写入、更新、删除、批准等)

我想知道用数据描述关系(Relationship_Id)而不是描述权限是否有任何好处。

我们将描述用户是“所有者”、“批准者”、“审阅者”、“公共查看者”等的想法。

然后,这种关系将定义一组权限。这可以减少权限的大小。

对这种方法有什么想法吗?

4

1 回答 1

0

正如您所注意到的,角色是权限的组合。如果您有一个大小为 n 的权限集,您可以拥有所有这些权限的 2^n 个组合。这意味着如果您有 5 个权限,则需要 32 个角色。如果您有 10 个权限,那么您将拥有 1024 个角色!

使用权限路由似乎也更容易维护 - 假设您想从一组用户中删除访问权限。您只需执行一个简单的查询即可删除授予这些用户访问权限的行。但是,如果您有角色,您首先需要找到所有包含访问权限的角色,从特定用户中删除这些角色,然后找到与每个用户的前一个角色一样减去访问权限的所有角色,并分配这些角色角色给用户。似乎工作量很大。

于 2015-05-05T01:49:37.953 回答