OpenVMS
ユーザーズ・マニュアル


前へ 次へ 目次 索引


/FIELD=(NAME=field-name,POSITION:n,SIZE:N, [DIGITS:n,]data-type)
/FIELD=(NAME=field-name,VALUE:n,SIZE:N,[DIGITS:n,] data-type)

出力レコードのフィールドの順序を変更したりフォーマットを変更する場合は,入力ファイルのフィールドを定義する。これらのフィールドには,キー・フィールド,比較されるフィールド,出力ファイルに転送されるフィールドがある。それぞれのフィールドは,その名前,レコード上での位置とサイズ,データ・タイプを指定することにより識別する。

フィールド名は一意でなければならない。また,フィールド定義の数は 255 以内でなければいけない。
また, /FIELD 修飾子を使用して定数値を定義し,/CONDITION,/DATA,および /KEY 文で使用するデータ・タイプの値に割り当てることができる。

次のような修飾子の値を指定できる。

NAME フィールド名を指定する。フィールド名にはスペースを含めることはできない。英字で始まり,31 文字以内でなければいけない。
POSITION:n レコード内でのこのフィールドの位置を指定する。
VALUE:n /CONDITION, /DATA,/KEY 文で使用される定数フィールドに値を割り当てる。VALUE:n を指定した場合,/POSITION:n を指定してはいけない。これは,このフィールドは定数フィールドであり,入力レコードのフィールドではないからである。
SIZE:n 文字あるいはバイナリ・データを含むフィールドのサイズをバイト数で指定する。データ・タイプにより,以下のように指定可能なサイズが決まっている。

-- 文字データ---32,767 以内
-- バイナリ・データ---1, 2, 4, 8, 16
-- 浮動小数点データ---サイズは指定しない

DIGITS:n 10 進データを含むフィールドのサイズを指定する。ここで指定するサイズは 31 以内でなければいけない。DIGITS:n は 10 進データを含んだフィールドを表現するときのみ使用する。
data-type データ・タイプを指定する。文字型の場合は指定する必要はない。省略時の設定では,Sort は文字データ・タイプを想定する。Sort/Merge により認識されるデータのタイプについては 第 9.2.1 項 を参照。



/FIELD=(NAME=SALARY,POSITION:10,DIGITS:8,DECIMAL)


この /FIELD 修飾子により,レコード内のこのフィールドは SALARY により認識され,フィールドは 10 バイト目から 8 桁の長さ,10 進データであることが指定される。

/INCLUDE=(CONDITION=condition[,KEY=...] [,DATA=...])

条件により,あるフィールドを出力レコードに出力することを指定することができる。/CONDITION 修飾子により条件を定義したのち,/INCLUDE 修飾子で選択するレコードを定義する。/INCLUDE 修飾子は,出力ファイルに出力すべき条件を満たすレコードを選択する。
1 つのファイルに対して,複数の /INCLUDE,/OMIT 修飾子を指定することができる。それらを指定した順序により,入力レコードがテストされる。最後の /INCLUDE 修飾子のあとで,選択対象とならなかったレコードまたは明示的に削除されたレコードがすべて削除される。
事前に削除されなかったレコード,または条件を指定せずに/INCLUDE 修飾子を指定することにより選択されたレコードを,出力に含めることもできます。

複数の形式のレコードをソートする場合は,ソートするそれぞれの形式のレコード形式に対して /INCLUDE 修飾子を指定する。/INCLUDE 修飾子で KEY オプションを指定しない場合は,Sort は省略時のキー定義を使用する。/INCLUDE 修飾子で KEY オプションを指定した場合は,省略時のキー定義は使用されない。/INCLUDE 修飾子の KEY フィールドの順序により,ソートのための内部キーが作成される。/INCLUDE 修飾子の DATA フィールドの順番により,出力レコードのフォーマットが決定される。/INCLUDE 修飾子で1つでも KEY フィールドまたは DATA フィールドを指定した場合は,出力したいすべての KEY フィールドまたは DATA フィールドを指定する必要がある。

以下のような修飾子の値を指定できる。

CONDITION /CONDITION 修飾子で既に定義されている条件名を指定する。
KEY /KEY 修飾子で定義された省略時のレコード・タイプが使用されないので,キー・フィールドを定義する。
DATA /DATA 修飾子で定義された省略時のレコード・タイプが使用されないので,データ・フィールドを定義する。



/FIELD=(NAME=ZIP,POSITION:20,SIZE:6)
/CONDITION=(NAME=LOCATION, 
            TEST=(ZIP EQ "01863"))
/INCLUDE=(CONDITION=LOCATION)


/CONDITION および /INCLUDE 修飾子を使用して,出力ファイルに zip コードが 01863 のレコードを含めることを指定している。

/KEY=field-name
/KEY=(field-name,order)/KEY=([IF condition THEN value ELSE]...)value [,order]

ソート処理で使用するキー・フィールドを指定する。文字データを使用しているレコードすべてをソートする場合は,キー・フィールドを指定する必要はない。そうでない場合は,その優先順位に従って,それぞれのキーを /KEY修飾子で指定する。最大 255 キーでソートすることができる。

3 種類の /KEY 修飾子の使用方法がある。


以下の修飾子の値を指定できる。

field-name キー・フィールド名を指定する。フィールド名は,事前に/FIELD 修飾子で定義されている。
order ソート順を指定する。ASCENDING は昇順,DESCENDING は降順にソートする。省略時の設定は ASCENDING。
value キーを指定する。値は,定数値でも /FIELD 修飾子で定義されたフィールド名でも可。



  1. /FIELD=(NAME=SALARY,POSITION:10,DIGITS:8,DECIMAL)
    /KEY=(SALARY,DESCENDING)
    


    この /KEY 修飾子は,キーは SALARY で,降順にソートすることを示す。


  2. /FIELD=(NAME=ZIP,POSITION:20,SIZE:6)
    /CONDITION=(NAME=LOCATION, 
                TEST=(ZIP EQ "01863"))
    /KEY=(IF LOCATION THEN 1 
          ELSE 2)
    


    この例では,zip コードが 01863 のすべてのレコードがソート済みの出力ファイルの最初にくる。/CONDITION で定義された条件 LOCATION は,ZIP フィールドが判定の対象であることを示す。この /KEY 句における 1 と 2 は,この条件を満たすレコードとそうでないレコードの順序を明示する。


/OMIT=(CONDITION=condition-name)

/CONDITION 修飾子で定義された条件に基づいて,出力ファイルから除外するレコードを指定する。

はじめに /CONDITION 修飾子で条件を定義しなければならない。ソート処理から除外される条件を満たすレコードを指定するために,/OMIT 修飾子を指定する。省略時の設定では,条件に該当しないすべてのレコードは出力ファイルに出力される。
指定ファイルで,複数の /OMIT と /INCLUDE 修飾子を指定できる。指定の順序により,除外のための入力レコードのチェックの順序が決定される。まだ出力されていないすべてのレコード,または最後の /OMIT 修飾子の後まで除外されていないすべてのレコードが出力される。/OMIT 修飾子のみを指定することにより,除外されていなかったレコードを無条件に取り除くこともできる。


/FIELD=(NAME=ZIP,POSITION:20,SIZE:6)
/CONDITION=(NAME=LOCATION, 
            TEST=(ZIP EQ "01863"))
/OMIT=(CONDITION=LOCATION)


この /CONDITION と /OMIT 修飾子は,zip コードが 01863 のレコードを出力ファイルに出力しないことを指定している。

/PAD=single-character

レコード形式を変更したり,長さの等しくないレコードを比較する際に,領域を拡張するために埋め込む文字を指定する。省略時の設定では,前バージョンとの互換性を保証するために空(null)を使用する。1 文字として定義可能な 2 文字("ch" > "c")は,埋めこみ文字として使用できない。文字,10 進数,8 進数,16 進数が使用可。

埋めこみ文字は以下のように指定する。



/PAD="." 


この /PAD 修飾子の例では,レコードをピリオドで埋め込むことを指定している。

/PROCESS=type

(SORT コマンドにのみ適用される。)ソート・プロセスの方法(レコード,タグ,アドレス,または索引)を指定する。出力されたレコードを再書式化する場合は,アドレス・ソートやインデックス・ソートを使用することはできない。プロセス・タイプには RECORD,TAG,ADDRESS,INDEX のいずれかを指定する。
4 タイプのプロセスの比較については 第 9.8.1 項 を参照。


/PROCESS=tag 


この /PROCESS 修飾子の例では,タグ・ソート・プロセスを使用することを指定している。

/[NO]STABLE

同じキーのレコードがあった場合,出力ファイルに出力する順序を指定する。省略時の設定は /NOSTABLE。

省略時の設定では,同一キーでレコードがソートされた場合,出力ファイルでのレコードの順序は,必ずしも入力ファイルでの順序と同じではない。指定ファイルで /STABLE 修飾子を指定すると,キーの同じレコードがあった場合,入力ファイルの順序で出力ファイルに出力される。複数の入力ファイルがある場合にこの修飾子を使用した場合,キーが同じレコードは,1 番目の入力ファイルが最初に,次に 2 番目の入力ファイルのレコードが出力される。


/STABLE 


この /STABLE 修飾子の例では,キーが同じレコードがあった場合,出力ファイルには入力ファイルと同じ順序で整列されることが保証される。

/WORK_FILES=(device[,...])

(SORT コマンドにのみ適用される。)処理速度を向上させるために,異なったディスク構造のデバイスに作業ファイルを割り当てる。作業ファイルで /WORK_FILES 修飾子を使用することにより,コマンドあるいはプログラムレベルでソートを呼び出す前に論理名を割り当てる必要がなくなる。
DCL での修飾子 /WORK_FILES=n と異なり,指定ファイル修飾子 /WORK_FILES=(device[,...])は,作業ファイルの数ではなく作業ファイルの割り当てを指定する。

作業ファイルについての詳細は,第 9.8.3 項 を参照。


/WORK_FILES=("WRKD$:")


この /WORK_FILES 修飾子の例では,ソートの作業ファイルの 1 つをデバイス WRKD$ を割り当てる。これは,このデバイスがもっとも使用可能スペースが多いからである。


第 10 章
資源へのアクセスの制御

システムにはそれぞれ,独自のセキュリティに関する要件があります。このため,システムごとに,システム管理者とユーザに対する物理的およびソフトウェア的なセキュリティ要件を示すシステム・セキュリティ方針を明らかにしておく必要があります。システム・セキュリティを確実にするために,OpenVMS オペレーティング・システムでは,システムへのアクセスと,共用可能情報を登録したオブジェクトへのアクセスの両方を制御します。デバイスやボリューム,論理名テーブル,ファイル,キューなどのオブジェクトを 保護されたオブジェクトと呼びます。保護されたオブジェクトはすべて,誰がそのオブジェクトに特定の方法でアクセスできるかを指定するアクセス条件一覧を定義しています。

オペレーティング・システムで使用可能なセキュリティ機能と,アカウントとシステムのセキュリティを保つためにシステム管理者が実行可能なタスクについては,『OpenVMS Guide to System Security』を参照してください。本章では,OpenVMS がシステム・リソースを保護し,監査する方法について説明します。特に次のことについて説明します。

セキュリティについての補足説明は,以下の資料を参照してください。

セキュリティ機能

たとえば,次の操作を通じてこれらの機能を理解することができます。

10.1 プロセスのライト識別子の表示

保護されたオブジェクトにアクセスしようとするプロセスはすべて,ライト識別子と呼ぶ保護機能を実行します。保護されたオブジェクトはすべて,特定の方法でそのオブジェクトに誰がアクセスできるかを指定できるアクセス条件を指定しています。アクセスするプロセスのライト識別子がオブジェクトのライト識別子と一致しない場合には,アクセスは拒否されます。

次の例では,SHOW PROCESS コマンドを使用して,現在のプロセスの識別子を表示する方法を示しています。


$ SHOW PROCESS/ALL 
25-NOV-2002 15:23:18.08   User: GREG            Process ID:   34200094 
                          Node: ACCOUNTS        Process name: "GREG" 
 
Terminal:           VTA2195:  TNA2170: (Host: 16.32.123.45 Port: 6789)
User Identifier:    [DOC,GREG]   (1)
Base priority:      4 
Default file spec:  WORK1:[GREG.FISCAL_96] 
Number of Kthreads: 1 
Devices allocated:  ACCOUNTS$TWA2: 
 
Process Quotas: 
   .
   .
   .
Process rights: 
 INTERACTIVE   (2)
 LOCAL         (3)
 SALES         (4)
 MINDCRIME                         resource  (5)
 
System rights: 
 SYS$NODE_ACCOUNTS   (6)
 

ライト識別子には,UIC,環境,汎用の3種類があります。SHOW PROCESSコマンドからの出力はこの3種類の識別子をすべて示しています。

  1. UIC 識別子は,Greg というユーザが DOC グループのメンバてあることを示している。

  2. 環境識別子は,Greg というユーザが会話型ユーザであることを示している。

  3. 環境識別子は,Greg というユーザがローカルからログインしたことを示している。

  4. 汎用識別子は,Gregというユーザがセールス・グループのメンバでもあることを示している。

  5. 汎用識別子は,Gregが資源属性を持つMINDCRIME識別子を保有しているため,識別子に対してディスク容量を要求できることを示している。

  6. 環境識別子は,GregというユーザがACCOUNTSノードから作業していることを示している。


前へ 次へ 目次 索引