VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER スカラー関数

VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER 関数は、SESSION_USER 特殊レジスターによって識別される許可 ID が何らかのトラステッド・コンテキストに関連付けられたトラステッド接続下のロールを獲得し、そのロールが role-name-expression 引数のリストで指定されたロール名に存在する (または含まれる) かどうかを示す値を返します。

構文図を読む構文図をスキップするVERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER( SESSION_USER , role-name-expression )

スキーマは SYSIBM です。関数名を修飾名で指定することはできません。

role-name-expression
ロール名を指定する式 (SQLSTATE 42815)。 ロール名が現行サーバーにあるかどうかは検証されません。 role-name-expression は、LOB 以外の組み込みの文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプを返す必要があります (SQLSTATE 42815)。 ストリングの内容は、大文字に変換されず、左寄せにされません。

この関数の結果は整数です。結果が NULL 値になることはありません。 SESSION_USER 特殊レジスターによって識別される許可 ID が何らかのトラステッド・コンテキストに関連付けられたトラステッド接続下のロールを獲得し、そのロールが role-name-expression 引数のリストで指定されたロール名の中に存在する (またはいずれかに含まれる) 場合には、結果は 1 になります。 それ以外の場合、結果は 0 です。

銀行の現金出納係は、所属支店の顧客のデータのみにアクセスできます。 すべての現金出納係は、トラステッド接続によってのみ獲得できるロール TELLER のメンバーです。 この規則を施行するために、SECADM 権限を持つユーザーによって行権限が作成されます。
CREATE PERMISSION TELLER_ROW_ACCESS ON CUSTOMER
  FOR ROWS WHERE
     VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER(SESSION_USER,'TELLER') = 1 AND
         BRANCH = (SELECT HOME_BRANCH FROM INTERNAL_INFO
             WHERE EMP_ID = USER)
ENFORCED FOR ALL ACCESS
ENABLE