0

単純な ACL システムを設計するときに、次の問題があります。

  • Person 1からTeam A編集可能Item X
  • Person 1Team Aからへの転送Team B
  • Team B編集できませんでしたItem X
  • 歴史的な理由により、まだPerson 1編集を許可していますItem X

RDBMS の典型的なモデルは次のとおりです。

  • Personテーブルにはテーブルと多対多の関係がありますTeam
  • 次のような ACL テーブルがあります。
    object_type | object_id | item_type | item_id | deny_or_allow

私が説明したようにチーム間の転送を処理するには

  • に追加のルールを追加するだけですPerson 1か?
  • いつの日かTeam A(元メンバーを含む)全員の編集を拒否したらどうなりItemXますか?
  • 人の移動履歴テーブルも保持する必要がありますか?
  • したがって、ACL ルールを決定するには、大量のことをトラバーサルする必要があります。

この問題の複雑さは、ACL と人事異動が常に発生するにつれて大きくなります。このためにリレーショナル DB でモデルを設計するベスト プラクティスは何ですか? これらの種類のものの一般的な用語またはトピックはありますか?

4

1 に答える 1

0

一般的なテーブル駆動型セキュリティでは、ロール ベースのセキュリティパターンが使用されます。

ロールを離れたユーザーのアクセスを保持したい場合は、ロール メンバーとロール権限に発効日時と有効期限を追加する必要があります。これにより、「アイテム X」が存在する前に「人物 2」が「チーム A」を去ったなどのことを言うことができるため、彼らはそれを見ることができません。

于 2013-02-19T14:08:11.117 に答える