グループ
あるグループに所属しているアカウント同士では登録したデータの参照・更新は可能だが、別のグループに所属するアカウントからは参照のみで更新はさせない、といったような使い方ができます。
これはモデル単位で設定します。
データ権限のパターン
モデル毎に「R:読み取り権限」「W:書き込み権限」の2つの権限を組み合わせたパターンを選択します。
各パターンはそれぞれ下表のように設定されています。
パターン |
データ登録者 |
同一の所属グループ |
その他の所属グループ |
R |
W |
R |
W |
R |
W |
パターン1 |
○ |
○ |
- |
- |
- |
- |
パターン2 |
○ |
○ |
○ |
- |
- |
- |
パターン3 |
○ |
○ |
○ |
○ |
- |
- |
パターン4 |
○ |
○ |
○ |
- |
○ |
- |
パターン5 |
○ |
○ |
○ |
○ |
○ |
- |
パターン6 (初期値) |
○ |
○ |
○ |
○ |
○ |
○ |
パターンは制約の厳しい順に並んでいます。初期値は「パターン6」(制約なし)が設定されています。
ワンポイント
システム管理者は(パターンの設定に関わらず)すべてのデータの閲覧と更新を行うことができます。
データ権限の動作の仕組み
本機能を使用すると、Wagby はモデルに(内部で利用するデータ権限管理用の)「データ所有者」及び「データ所有者の所属グループ」項目を追加します。データの登録や更新時、この項目に値が自動セットされます。この値を使って利用者(アカウント)の操作を制限します。
データ登録後にユーザの所属グループを変更した場合
データ登録後にユーザの所属グループを変更しても既存のデータは影響を受けません。「データ登録時に設定された所有者の所属グループ」が維持されます。
これを「パターン5」のデータ権限を例に説明します。
用意するグループ
グループID (主キー) |
グループ名 |
1000 | 総務部 |
1001 | 営業部 |
1002 | 技術開発部 |
用意するアカウント
アカウント |
名前 |
所属グループ |
satou | 佐藤 | 総務部 |
suzuki | 鈴木 | 総務部 |
yamada | 山田 | 技術開発部 |
佐藤がデータを登録した場合
佐藤が顧客データ(ID:1234)を登録します。
顧客ID |
作成者(データ所有者) |
データ所有者の所属グループ |
佐藤の操作 |
鈴木の操作 |
山田の操作 |
R | W | R | W | R | W |
1234 | satou | 1000 |
○ | ○ | ○ | ○ | ○ | - |
佐藤はデータを登録した本人のため、読み書きできます。
鈴木は同一グループのため、読み書きできます。
山田は異なるグループのため、読み取りのみ許可されます。
佐藤の所属グループを変更した後
"satou" (佐藤) の所属グループを技術開発部に変更します。この操作はすでに登録済みのデータには影響がありません。
顧客ID |
作成者(データ所有者) |
データ所有者の所属グループ |
佐藤の操作 |
鈴木の操作 |
山田の操作 |
R | W | R | W | R | W |
1234 | satou | 1000 |
○ | ○ | ○ | ○ | ○ | - |
佐藤のグループを変更したにも関わらず、鈴木が読み書きでき、山田は読み取りのみです。
これは、登録済みデータは登録時の所属グループのIDを保持しているためです。
佐藤が新しいデータを登録した場合
所属グループ変更後に登録を行ったデータについては、変更後のグループが適用されます。
顧客ID |
作成者(データ所有者) |
データ所有者の所属グループ |
佐藤の操作 |
鈴木の操作 |
山田の操作 |
R | W | R | W | R | W |
1235 | satou | 1002 |
○ | ○ | ○ | - | ○ | ○ |
グループ管理者
各グループには、グループ内のデータに対して特別な権限を持つ「グループ管理者」を用意することができます。
「グループ管理者」はプリンシパルとして提供されますが、これが選択できるのはグループ管理者の権限が(同一の所属)グループの権限を超える運用を行うときに限定されます。具体的には次のパターンです。
パターン |
同一の所属グループ |
グループ管理者の権限 |
R |
W |
パターン1 |
- |
- |
RW |
パターン1 |
- |
- |
R |
パターン2 |
○ |
- |
RW |
パターン4 |
○ |
- |
RW |
パターン2を例にあげて説明します。同一グループに属するアカウントは通常、読み取りが許可されています。しかしグループ管理者は通常の権限を強化したものとなっているため、書き込み(データの登録、更新、削除)が行えます。
グループ管理者プリンシパルの選択
グループ管理者はプリンシパルとして用意されます。そのため複数のアカウントをグループ管理者に任命することができます。
データ権限設定を解除する
データ権限管理を解除するには、「権限パターン」の設定をパターン6(初期値; 制約なし)にします。
仕様・制約
- モデルの検索・一覧表示画面を用意しなかった場合、データ権限は利用できません。(設定は無効となります。)
- 詳細画面では「データ所属グループ」を確認することはできません。