通常、RBAC は、管理対象のエンティティごとに異なるアクセス許可を与えることはできません。RBAC は 2 次元です - アクセス権 X ROLE。通常、どのコンテンツが制御されているかをテストするメカニズムはありません。おそらくこれには RBAC を使用できますが、それを行うには多くの ROLES が必要であり、いくつかのカスタマイズが必要であり、とにかく ACL を作成することになります。
一方、ACL は本質的に 3 次元です。パーミッション X ROLES X オブジェクトはすべて、完全なセットまたは部分的なセットで相互に定義できます。
パーミッション X ROLE X オブジェクト (完全な ACL) パーミッション X ROLE (RBAC) ROLE X オブジェクト (役に立つ?) パーミッション X オブジェクト (役に立つ?)
ACL と RBAC の両方で、人々に異なる役割を割り当てることができます。ほとんどの RBAC では、他の方法でアクセス許可を割り当てることはできません。
ただし、多くの ACL には、特定のオブジェクト/エンティティに関して権限を直接人に割り当てる機能があります。これが ACL の cpability である場合、複雑さが大幅に増加し、速度が低下しますが、大幅な柔軟性が追加されます。1 人のユーザー専用の ROLE を作成する方がはるかに優れています。そのため、人々に権限を直接割り当ててそこに行かないでください。
あなたの問題は、ほとんどの場合、ROLES のタイプを区別していないことですが、とにかく RBAC はそれを行いません。ACL を使用する必要があります。パーミッションと ROLE、ROLE とオブジェクトの表形式の表示を設定できれば、より長く理解を深めることができます。
ほとんどの優れた ACL が持つもう 1 つの要素は、オブジェクトのグループです。これは、権限の一括または「随時」割り当てを行うために必要なことです。キャンペーンの作成コードは、カテゴリ別にグループを事前に割り当てます。その後、ROLES と権限が自然に発生します。