VERIFY_GROUP_FOR_USER スカラー関数

VERIFY_GROUP_FOR_USER 関数の戻り値は、SESSION_USER 特殊レジスターによって識別される許可 ID に関連付けられたグループのいずれかが、group-name-expression 引数のリストによって指定されたグループ名の中にあるかどうかを示します。

Read syntax diagramSkip visual syntax diagramVERIFY_GROUP_FOR_USER(SESSION_USER , group-name-expression )

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

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

この関数の結果は整数です。 結果が NULL 値になることはありません。 SESSION_USER 特殊レジスターによって識別される許可 ID に関連付けられたグループのいずれかが、group-name-expression 引数のリストに存在する場合は、結果が 1 となります。 それ以外の場合、結果は 0 です。

例 1

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

例 2

ユーザーが行を表示できるかどうかは、保護されている表の ACCESS_ROLE 列にあるロールの名前によって判別されます。 セッション・ユーザーにこのロールが割り当てられていることを検査するために、SECADM 権限を持つユーザーによって行権限が作成されます。

CREATE PERMISSION ROLEACCESS ON CUSTOMER
FOR ROWS WHERE ( VERIFY_GROUP_FOR_USER(SESSION_USER, ACCESS_ROLE ) = 1 )
ENFORCED FOR ALL ACCESS
ENABLE