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 に答える