Last updated: 12/28/2002 Top ドキュメントTop

データベース管理システム 管理者用ガイド
ユーザ・アクセス権限

ユーザ管理

DBIPgSystem::DB のオブジェクトを生成する際、 ユーザ名を指定するようになっています。 DBIPgSystem::DB モジュールは、指定されたユーザ名を元に ユーザID (UID) を取得し、同時に sys_userinfo テーブルからユーザ情報を取得します。

UID は、データを追加/修正する際、 データの所有者を表すための ID としてデータのシステム定義カラムに格納されます。 また、アクセス権があるかどうかのチェックを行うときに利用されます。

Passwd モジュールでのユーザ管理

sys_userinfo テーブル

ユーザ情報をコアで管理するために sys_userinfo テーブルが作られます。 このテーブルで定義されるカラムを次に示します。

カラム名データ型説明
system_uidint4ユーザID
system_readtext 一般の読み込み時の絞り込み条件
system_addtext追加/修正時の絞り込み条件
system_deletetext削除時の絞り込み条件
system_detailtext詳細表示時の絞り込み条件
system_tofiletext CSV/タブ区切りファイル出力時の絞り込み条件
system_state_activetext 有効のデータのパーミッション
system_state_waittext 申請中のデータのパーミッション
system_state_invalidtext 無効のデータのパーミッション

アクセス制限

sys_userinfo テーブルの内容は、主にアクセス制限のために使われます。 処理の対象となるデータが system_(read|add|delete), system_state_* のカラムに対応する値に マッチしていれば、その処理を行えます。 そうでないデータには、その処理を行えません。

データの状態に応じて system_state_*、 データに対する処理に応じて system_(read|add|delete) が使われます。 通常、大まかな設定を system_state_* で行い、 細かな設定を system_(read|add|delete) で行うとよいでしょう。

system_state_* は、状態が有効/申請中/無効のデータに対する アクセス権を表します。各値には、次の文字からなる文字列を記述してください。

例えば、値が 'RAD' ならば、 その状態のデータの全てについて自由にアクセスできます。 'r' ならば、ユーザIDの一致するデータに限って内容を表示させることができます。 null値や空文字列ならば、その状態のデータには全くアクセスできません。

system_state_invalid に A, D, a, d の文字を記述しても無視されます。 無効のデータの挿入や削除はできないからです。 また、system_state_* に R ( D ) が含まれていれば、 さらに r ( d ) を含める必要はありません。

system_(read|add|delete|detail|tofile) には、 SQLの WHERE句と同様の記述をしてください。 ただし、これらのカラムの値が null値や空文字列の場合は、 何も制限をかけていないものとみなされます。 主テーブルに対してのみ制限をかけられます。

詳細表示の際には、通常の読み込み(検索時など)の際よりも制限が厳しく、 system_read と system_detail の両方の制限を受けます。 例えば、どちらのカラムも空文字列でない場合は、 両方の条件を満たすデータのみアクセスできます。

CSV/タブ区切り表示の際には、詳細表示の際よりもさらに制限が厳しく、 system_read, system_detail system_tofile の制限されます。 例えば、どのカラムも空文字列でない場合は、 それらの全ての条件を満たすデータのみアクセスできます。

例えば、system_state_active = 'R', system_read = 'country = \'Japan\'' の場合、country が 'Japan' に等しい有効なデータの内容を 表示させることができます。

これらのアクセス制限の処理は、 DBIPgSystem::DB::check_permission メソッド で行われます。

各処理を行うために必要なアクセス権

以下に、それぞれの処理を行うために必要な条件を示します。

検索
読み込み可能なこと。
詳細表示
詳細表示可能なこと。
CSV/タブ区切りファイルへの書き出し
ファイル出力が可能なこと。
削除
削除しようとする全てのデータが削除可能なこと。
フォームからの追加
追加可能なこと。
フォームからの修正(有効)
修正元のデータが詳細表示可能、有効のデータが追加可能、 かつ修正するデータと同じ DID を持つデータを無効にできること。
フォームからの修正(申請中)
修正元のデータが詳細表示可能、かつ申請中のデータが追加可能なこと。 修正元のデータの UID が自分と同じでかつ申請中の場合は、 そのデータが削除可能でなければならない。
ファイルからの追加
追加可能なこと。
ファイルからの修正(有効)
修正元のデータが詳細表示可能、有効のデータが追加可能、 かつ修正するデータと同じ DID を持つデータを無効にできること。
ファイルからの修正(申請中)
修正元のデータが詳細表示可能、かつ申請中のデータが追加可能なこと。

データの挿入方法

サンプル「履歴書」 のドキュメントやソースを参考にしてください。 このサンプルで、実際にアクセス制限を利用する例を紹介しています。