グループによるデータ権限

最終更新日: 2021年10月1日

グループ

あるグループに所属しているアカウント同士では登録したデータの参照・更新は可能だが、別のグループに所属するアカウントからは参照のみで更新はさせない、といったような使い方ができます。

これはモデル単位で設定します。

グループ

データ権限のパターン

モデル毎に「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 作成者(データ所有者) データ所有者の所属グループ 佐藤の操作 鈴木の操作 山田の操作
RWRWRW
1234satou1000 -

佐藤はデータを登録した本人のため、読み書きできます。
鈴木は同一グループのため、読み書きできます。
山田は異なるグループのため、読み取りのみ許可されます。

佐藤の所属グループを変更した後

"satou" (佐藤) の所属グループを技術開発部に変更します。この操作はすでに登録済みのデータには影響がありません。

顧客ID 作成者(データ所有者) データ所有者の所属グループ 佐藤の操作 鈴木の操作 山田の操作
RWRWRW
1234satou1000 -

佐藤のグループを変更したにも関わらず、鈴木が読み書きでき、山田は読み取りのみです。 これは、登録済みデータは登録時の所属グループのIDを保持しているためです。

佐藤が新しいデータを登録した場合

所属グループ変更後に登録を行ったデータについては、変更後のグループが適用されます。

顧客ID 作成者(データ所有者) データ所有者の所属グループ 佐藤の操作 鈴木の操作 山田の操作
RWRWRW
1235satou1002 -

グループ管理者

各グループには、グループ内のデータに対して特別な権限を持つ「グループ管理者」を用意することができます。

「グループ管理者」はプリンシパルとして提供されますが、これが選択できるのはグループ管理者の権限が(同一の所属)グループの権限を超える運用を行うときに限定されます。具体的には次のパターンです。

パターン 同一の所属グループ グループ管理者の権限
R W
パターン1 - - RW
パターン1 - - R
パターン2 - RW
パターン4 - RW

パターン2を例にあげて説明します。同一グループに属するアカウントは通常、読み取りが許可されています。しかしグループ管理者は通常の権限を強化したものとなっているため、書き込み(データの登録、更新、削除)が行えます。

グループ管理者プリンシパルの選択

グループ管理者はプリンシパルとして用意されます。そのため複数のアカウントをグループ管理者に任命することができます。

グループ管理者プリンシパル

データ権限設定を解除する

データ権限管理を解除するには、「権限パターン」の設定をパターン6(初期値; 制約なし)にします。

仕様・制約

  • モデルの検索・一覧表示画面を用意しなかった場合、データ権限は利用できません。(設定は無効となります。)
  • 詳細画面では「データ所属グループ」を確認することはできません。