13.1.3 問合せセキュリティのための外部インタフェース

QUERY SECURITY」関数は、ExternQuerySecurityという名前の「スタブ」を呼び出します。

提供されたExternQuerySecurityスタブは、QUERY SECURITYのすべてのパラメータを受け取り、リソースへのアクセスを常に許可し、リターン・コードでゼロを返します。次に説明する、インタフェースを遵守するカスタマ関数に置き換えることができます。

QUERY SECURITYは、次のパラメータを渡します。

問合せセキュリティExternインタフェースのリスト
restype                 pic x(7).
restype-data-value      pic x(12).
resclass                pic x(8).
resclass-data-value     pic x(8).
residlength             pic x(11).
residlength-data-value  pic s9(8) comp-5.
resid                   pic x(5).
resid-data-value        pic x(246).
logmessage              pic x(10).
logmessage-cvda         pic s9(8) comp-5.
read                    pic x(10).
read-cvda               pic s9(8) comp-5.
update                  pic x(10).
update-cvda             pic s9(8) comp-5.
control                 pic x(10).
control-cvda            pic s9(8) comp-5.
alter                   pic x(10).
alter-cvda              pic s9(8) comp-5.
resp                    pic s9(8) comp-5.
resp2                   pic s9(8) comp-5.
userid                  pic x(8). 

すべてのパラメータがExternQuerySecurityに渡され、戻り値としては、次のパラメータだけが予期されます。

read-cvda               pic s9(8) comp-5.
update-cvda             pic s9(8) comp-5.
control-cvda            pic s9(8) comp-5.
alter-cvda              pic s9(8) comp-5.
resp                    pic s9(8) comp-5.
resp2                   pic s9(8) comp-5.

「read」に「READ」が適用されると、read-cvdaが予期されます。

「update」に「READ」が適用されると、update-cvdaが予期されます。

「control」に「READ」が適用されると、control-cvdaが予期されます。

「alter」に「READ」が適用されると、alter-cvdaが予期されます。

「resp」と「resp2」は、常に予期されます。

ノート:

各インタフェース・フィールドの末尾は2進数のゼロで、ExternQuerySecurityをCで書く場合に便利です。

「read」のcvda値は、次のとおりです。

READABLE            35.
NOTREADABLE         36.

「update」のcvda値は、次のとおりです。

UPDATABLE           37.
NOTUPDATABLE        38.

「control」のcvda値は、次のとおりです。

CTRLABLE            56.
NOTCTRLABLE         57.

「alter」のcvda値は、次のとおりです。

ALTERABLE           52.
NOTALTERABLE        53.

詳細は、IBMのドキュメントでcvda値を参照してください。

S9(9) COMP-5は、符号付きintと同等です。