Empress 資料一覧
2007/11/4更新
対応バージョン: 6.10
Empressは個々のデータベース毎にデータ辞書テーブルと呼ばれる以下の5つのシステムテーブルを持っており、テーブルの属性に関する情報をいろいろな形で管理している。
sys_tables
テーブルに関する情報
sys_attrs
属性に関する情報
sys_privs
テーブルアクセス特権に関する情報
sys_attr_privs
属性アクセス特権に関する情報
sys_dictionary
上記のテーブルのコンパイルされた全情報を持っている。
このうち、主にテーブルのアクセス権に関する情報はsys_tablesとsys_privsで管理しているので、以降はこの2つのテーブルについて説明する。
sys_tables
tab_name
テーブル名
tab_number
テーブル番号
この番号はテーブル名に対する実際のファイル名の割当となる。
例えばテーブル番号が1の場合テーブル情報が格納されているファイル名は$HOME/
tab_type
現在未使用
tab_numattrs
テーブル内の属性数
tab_lock
テーブルに設定されたロックレベル
・n : 未設定
・r : レコードロック ... Empress制御用テーブル(sys_*)はこのレベルで作成される。
・g : グループロック
・t : テーブルロック
tab_perms
テーブルに対応するファイルに設定されたOSのパーミッション
ファイルはUNIXアカウントのホームディレクトリ配下に作成されるのでそのアカウントのumaskが適用される。
tab_index
テーブル上に生成されたあらゆるインデックスに関する情報
tab_refer
テーブル上の全ての参照制約定義
tab_view
ビューの場合はビューを定義するselect文
tab_vwcomp
ビューを定義するコンパイルデータ
tab_location
リモートの場合はテーブル位置
tab_creator
テーブルを生成したUNIXアカウント名
tab_crtime
テーブルが生成された日付及び時間
tab_comment
create commentコマンドによって生成されたコメント
tab_param
Shared Memoryのパラメータ
sys_privs
1つのテーブルにつきgrantor/granteeのペアで計2レコード保持
priv_grantor
特権を与える人
priv_grantee
特権を受ける人(UNIXアカウント)
priv_tabnum
特権が適用されるテーブルの識別番号(= tab_number@sys_tables)
priv_updattr
テーブル及びビューにおける個別の属性更新特権を設定するテーブルであるsys_attr_privs内にレコードがあるかどうかを`y'か`n'で表示する。
grantorがテーブル内の少なくとも1つの属性(但し全ての属性ではない)に関する更新特権をgranteeに与えた場合はsys_attr_privs内にレコードが存在する。
priv_delete
テーブルからレコードを削除(delete)する特権
・n : delete特権がない。
・y : delete特権は有するが、この特権を他に与える権限はない。
・g : delete特権を有し、さらにこの特権を他に与える権限も有する。
priv_insert
テーブルにレコードを挿入(insert)する特権
・n : insert特権がない。
・y : insert特権は有するが、この特権を他に与える権限はない。
・g : insert特権を有し、さらにこの特権を他に与える権限も有する。
priv_select
テーブルからレコードを読み込む(select)する特権
・n : select特権がない。
・y : select特権は有するが、この特権を他に与える権限はない。
・g : select特権を有し、さらにこの特権を他に与える権限も有する。
priv_update
テーブルの全属性を更新(update)する特権
・n : update特権、またはpartial update特権(*)がない。
・y : update特権は有するが、この特権を他に与える能力がないfull update特権。
・g : update 特権を有し、さらにこの特権を他に与える能力があるfull update特権。
(*) partial update特権は一部の属性が更新された場合のみ発生する。この場合、attr_privs属性は`y'の値を持ちsys_attr_privsテーブルに注目する。
priv_display
テーブルを表示(display)する特権
・n : display特権がない。
・y : display特権は有するが、この特権を他に与える権限はない。
・g : display特権を有し、さらにこの特権を他に与える権限も有する。
priv_alter
テーブルを変更(alter)する特権
・n : alter特権がない。
・y : alter特権は有するが、この特権を他に与える権限はない。
・g : alter特権を有し、さらにこの特権を他に与える権限も有する。
priv_drop
テーブルを削除(drop)する特権
・n : drop特権がない。
・y : drop特権は有するが、この特権を他に与える権限はない。
・g : drop特権を有し、さらにこの特権を他に与える権限も有する。
priv_empty
テーブルを空(empty)にする特権
・n : empty特権がない。
・y : empty特権は有するが、この特権を他に与える権限はない。
・g : empty特権を有し、さらにこの特権を他に与える権限も有する。
priv_index
テーブル上にインデックスを生成(index)する特権
・n : index特権がない。
・y : index特権は有するが、この特権を他に与える権限はない。
・g : index特権を有し、さらにこの特権を他に与える権限も有する。
priv_sort
テーブルをソート(sort)する特権
・n : sort特権がない。
・y : sort特権は有するが、この特権を他に与える権限はない。
・g : sort特権を有し、さらにこの特権を他に与える権限も有する。