SECLABEL_TO_CHAR スカラー関数

SECLABEL_TO_CHAR 関数は、セキュリティー・ラベルを受け入れ、セキュリティー・ラベル内のすべてのエレメントを入れたストリングを戻します。 このストリングは、セキュリティー・ラベル・ストリング・フォーマットになっています。

Read syntax diagramSkip visual syntax diagramSECLABEL_TO_CHAR(security-policy-name ,security-label)

スキーマは SYSIBM です。

セキュリティー・ポリシー名
現行のサーバーに存在するセキュリティー・ポリシーを指定するストリング (SQLSTATE 42704)。 ストリングは、文字または GRAPHIC ストリングの定数かホスト変数でなければなりません。
セキュリティー・ラベル (security-label)
security-policy-name で指名されたセキュリティー・ポリシーに対して有効なセキュリティー・ラベル値を戻す式 (SQLSTATE 4274I)。 式は組み込み SYSPROC.DB2SECURITYLABEL 特殊タイプの値を戻す必要があります。
関数の結果は VARCHAR(32672 OCTETS) です。 結果は NULL になる可能性があります。第 2 引数が NULL である場合、結果は NULL 値になります。

  • ステートメントの許可 ID が、DB2SECURITYLABEL のデータ・タイプを持つ列から読み取られるセキュリティー・ラベルに対してこの関数を実行した場合、その許可 ID の LBAC 信用証明情報によって、関数の出力が影響を受けることがあります。 そのような場合に、あるエレメントに対する読み取りアクセス権をその許可 ID がもっていないと、出力内にそのエレメントは組み入れられません。 あるエレメントだけが入った (他のエレメントは入っていない) セキュリティー・ラベルによって保護されていたデータの読み取りが LBAC 信用証明情報によって許可されている場合、許可 ID はそのエレメントに読み取りアクセスすることができます。

    規則セット DB2LBACRULES の場合、読み取りアクセスできないエレメントを入れることができるのは、タイプ TREE のコンポーネントだけです。 他のタイプのコンポーネントの場合、エレメントのいずれか 1 つが読み取りアクセスをブロックすると、行の読み取りがまったくできなくなります。 したがって、この方法で除外されるエレメントを持つのは、タイプ TREE のコンポーネントだけです。

EMP 表には、RECORDNUM および LABEL の 2 つの列があります。RECORDNUM はデータ・タイプ INTEGER をもち、LABEL はタイプ DB2SECURITYLABEL をもっています。 表 EMP は、セキュリティー・ポリシー DATA_ACCESSPOLICY によって保護されています。このポリシーは、DB2LBACRULES 規則セットを使用し、コンポーネントを 1 つだけ (TREE タイプの GROUPS) もっています。 GROUPS には、PROJECT、TEST、DEVELOPMENT、CURRENT、および FIELD という 5 つのエレメントがあります。 以下のダイアグラムは、これらのエレメントの相互関係を示しています。
         PROJECT
    ________|________
   |                 |
 TEST           DEVELOPMENT
               ______|______
              |             |
           CURRENT        FIELD
EMP 表には、以下のデータが収められています。
RECORDNUM  LABEL
---------  ----------------
        1  PROJECT
        2  (TEST, FIELD)
        3  (CURRENT, FIELD)
ID が Djavan のユーザーは、DEVELOPMENT エレメントだけが入った、読み取り用のセキュリティー・ラベルを保有しています。 その意味するところは、Djavan は DEVELOPMENT、CURRENT、および FIELD エレメントに読み取りアクセスできるということです。
   SELECT RECORDNUM, SECLABEL_TO_CHAR('DATA_ACCESSPOLICY', LABEL) FROM EMP
これは、以下のものを戻します。
RECORDNUM  LABEL
---------  ----------------
        2  FIELD
        3  (CURRENT, FIELD)

RECORDNUM 値が 1 の行は、出力には組み入れられません。なぜなら Djavan の LBAC 信用証明情報では、当人はこの行を読み取ることができないからです。 RECORDNUM 値が 2 の行では、エレメント TEST は出力に組み入れられません。なぜなら、Djavan はこのエレメントに読み取りアクセスできないからです。セキュリティー・ラベル内の唯一のエレメントが TEST であったとしたら、Djavan はこの行にまったくアクセスできなかったはずです。 Djavan はエレメント CURRENT および FIELD には読み取りアクセスできるので、両方のエレメントが出力内に現れます。

次に、Djavan は、DB2LBACREADTREE 規則に対する免除を付与されます。 それは、TREE タイプのコンポーネントのどのエレメントも、読み取りアクセスをブロックしないことを意味します。 同じ照会が、以下を戻します。
RECORDNUM  LABEL
---------  ----------------
        1  PROJECT
        2  (TEST, FIELD)
        3  (CURRENT, FIELD)
今回は、すべての行とすべてのエレメントが出力に組み入れられています。なぜなら、免除によって Djavan はすべてのエレメントに読み取りアクセスできるようになったからです。