今回は、「プロファイルとロールの違い」についてです。
プロファイルとは?
プロファイルとは「ユーザの権限を制限するための機能」のこと。
もう少しかみ砕いて表現すると、「それぞれのユーザのできること/できないことを決める機能」です。
言葉で説明するより見た方が早いと思うので、実際の画面で説明しますね。
下のような条件でユーザとプロファイルを作成します。
ユーザ | プロファイル | 顧客企業に対する権限 |
---|---|---|
山田一郎 | 一郎 | 参照 / 作成 / 編集 / 削除 |
山田二郎 | 二郎 | 参照 / 編集 |
山田三郎 | 三郎 | 参照 |
山田一郎の場合
- 山田一郎のプロファイル
- 山田一郎でログイン
プロファイル「一郎」が割り当てられている山田一郎は、顧客企業に対してCRUD(Create、Read、Update、Delete)の権限を持つので、当然、顧客企業を新規作成できます。
山田二郎の場合
- 山田二郎のプロファイル
- 山田次郎でログイン
山田二郎には、RU(Read:Update)の権限が設定されたプロファイルが割り当てられているので、顧客企業を作成したり、削除することはできません。
先ほど山田一郎が作成した企業Aの情報を参照したり、編集することは可能です。
山田三郎の場合
- 山田三郎のプロファイル
- 山田三郎でログイン
山田三郎には、顧客企業に対する参照権限しか与えられていないので、企業Aの情報を見ることしかできません。
以上の例で、プロファイルがどんな働きをするのかは、なんとなく理解できたと思います。
- プロファイルは、ユーザのできること/できないことを決める機能
- ユーザ1人につき、必ず1つのプロファイルが必要
ロールとは?
プロファイルが、ユーザのできること/できないことを決める機能なのに対して、ロールは、「どの対象に処理を行えるか」を決める機能です。
ロールは、以下のようなツリー形式(階層)になっていて、上の階層にいくほど権限の範囲が広くなります。課長より部長のほうが、部長より社長の方が権限が強いのと同じ考えですね。
ロールの特徴としてはこんな感じです↓
- 自分より上位のロールのユーザが所有者のデータは参照できない。
- 自分と同じ階層、自分よりも下位の階層のユーザが所有者のデータは参照できる。
具体的に、以下のようなロールモデルで見ていきましょう。
ロール | 割り当てユーザ(プロファイルは先ほどと同じ) |
---|---|
部長 | 山田一郎 |
課長 | 山田二郎 |
普通の社員 | 山田三郎 |
この場合、山田一郎が3人の中で最も権限が広いということになります。
そのため、次の画像のように山田一郎が企業の所有者の場合、プロファイルのオブジェクト権限で顧客企業に対する参照権限を与えていたとしても山田二郎と山田三郎は企業Aを参照することができません。
しかし、山田一郎は自分より下位のロールのユーザの情報を参照したり、変種したりすることができるので、仮に山田二郎が企業Bを作成していたら、山田一郎はその企業に対しても権限を持つことになります。
その場合も、山田三郎は、一郎と二郎の下位ロールに位置しているので、どちらの企業も参照することはできません。
以上、ロールの説明おしまい。
まとめ:プロファイルとロールの違い
プロファイルとロールの違いをまとめると、
プロファイルは、ユーザが何ができるかを決定(オブジェクトに関してはCRUDに焦点)し、
ロールは、どのデータに対して処理を行えるかを決定する
ということです。
おわり。
コメント