より一般的な私たちの役割ベースのアクセス制御、関連して、ユーザーの役割と権限はあります。簡単に言えば、ユーザーは複数の役割、より多くの権限を持つ役割を担っています。ライセンスモデルこのように、それは「 - - 役割許可ユーザー」に設定されています。このモデルでは、ユーザーとロール、および役割、多くの場合、多くの関係の間の権限の間。図は次のとおりです。
これに基づき、あなたは第一の端部でどのような役割であることを理解しなければなりませんか?権の数のコレクションは、キャリアが特権であると我々はそれを理解することができます。
例:「管理者」、「司会者」のフォーラム、彼らはすべての役割があります。しかし、どのように行うことができることは、ユーザが直接付与ユーザー権限なしに、これらの権限を付与したい場合には、能力の範囲内である、などのバージョン管理ポストで唯一の司会者、ユーザー、まったく同じではありません、単に「司会者が」この役割は、ユーザーに与えることができます。
しかし、我々はまた、あなたがユーザグループを追加することができ、これは非常に複雑な問題であり、ユーザーの数が非常に大きい場合、あなたは(役割の割り当て)認証の一つのシステムにより、各ユーザーに1を与える必要があり、上からの問題を参照してください複数のユーザに単一の認可によって同時に同一のアクセス許可を与えることができるように、ユーザーの各グループ内の複数のユーザは、単一のユーザ認証に加えて、認可はまた、ユーザのすべて、ユーザに設定されてもよいですユーザーの個人権限は、権限が権限とそのユーザーのグループがあり、所有しています。ユーザグループ、および3つの役割以下のユーザーとの関係:
通常、我々はページ上のメニュー(ページレベル)、動作機能モジュール(関数レベル)、アップロードされたファイルの削除、あるいはボタンにアクセスするためにそれを示したの権限のシステムのアプリケーションでは、画像が表示され、そのため、すべての特権がありますカテゴリ。「 - 役割 - 権限 - リソースユーザー」ライセンスモデルいくつかの権利のデザインは、操作が別のクラスとしてクラス、およびドキュメント、メニュー、およびその他のページ要素として、これが構成する機能します。モデリングデータテーブルを行うことで、機能動作と資源の統合管理が、それは、直接実施されることができ、テーブル上の権限に関連した、これはより便利で簡単なスケーラビリティかもしれません。図は次のとおりです。
特に注目すべきは、ここで次の権限テーブルには、私たちのことは、このような「MENU」メニューへのアクセスを表現するよう、列挙として理解することができますどのような権限を、区別するために、その値に応じて、「PowerType(権限タイプ)」を持っています、「操作」操作権限の機能モジュールを表し、「ファイル」は、ファイルを変更する権限を表し、「要素」ように制御ページの要素との可視性を表します。
この設計の2つの利点があります。
まず、あなたは(?実際には、時々、メニューなどの優れた区別が、それはまだ機能モジュールの消費電力であるリソースとして、それを理解していない)、リソースである、動作する権限が何であるかを区別する必要はありません。
アクセス制御システムは、新しいものであることをときに、第2、拡張を容易に、私はちょうど新しいアソシエーションテーブル「特権XX関連表」を作成し、そのような権利の文字列に権限のタイプを決定する必要があります。
テーブルメニューテーブルに関連付けられているアクセス許可と権限テーブルに関連するテーブルのメニュー、メニューの権限は1対1の関係で、注意すべきです。(ファイル、ページの権限ポイント、操作、などと同じ機能)。各メニューは3つのテーブルの各レコードを挿入を持っていると同時に、追加されます。
このように、メニューは必要とされないことも許可アソシエーションテーブルに直接「右タイプ」を通じて、メニュー、今回、権利テーブルメニューに格納される新しいID、許可テーブルに関連付けられており、このIDを区別するために、テーブルの許可テーブルになるように、どの種類の記録。以下に示すように、完全な設計モデルのうち、最後の拡張子:
私は、追加の操作ログテーブルを追加した上で注目してください。
ますます大規模なシステムでは、管理を容易にするために、グループの役割を導入する必要がある場合には、異なるユーザのグループ、ロール、権限付与に関与していないグループと、管理役割を分類しました。
たとえば、次のように複数の子会社に直面したとき、私たちは役割に部門を理解することができ、各子会社の部門の数、役割グループのための理解の子会社があり、役割グループは、コンピテンシーの配布に参加しません。さらに、それらの管理と検索を容易にするために、メインテーブルトップ、木構造の各々は、メニューツリー、ツリー機能など、使用することができる、もちろん、権限の割当てに参加する必要はないかもしれません。
データ・ディクショナリ:
1. Userテーブル:
表2.役割:
3.ユーザーは、ロールテーブルに関連付けられています
4.ユーザグループテーブル
ユーザとユーザグループ情報対応付けたテーブル
6.役割テーブルに関連付けられたユーザグループ
7。表メニュー
表8ページ要素
9.ファイルテーブル
表10.権限
11.権利やメニューに関連するテーブル
ページテーブル要素に関連付けられている12.権利
ファイルテーブルに関連付けられている13.権利
14.機能動作テーブル
15.権限の操作に関連するテーブルと機能
16.役割と権限関連テーブル
17操作ログテーブル