AUTH_LIST_ROLES_FOR_AUTHID 関数 - ロールのリストを戻す

AUTH_LIST_ROLES_FOR_AUTHID 関数は、指定の許可 ID がメンバーになっているロールのリストを戻します。

構文

構文図を読む構文図をスキップするAUTH_LIST_ROLES_FOR_AUTHID(authid,authidtype)

スキーマは SYSPROC です。

表関数パラメーター

authid
照会対象の許可 ID を指定する、タイプ VARCHAR(128) の入力引数。許可 ID はユーザー、グループ、またはロールです。authid が NULL または空ストリングである場合、空の結果表が戻されます。
authidtype
照会対象の許可 ID を指定する、タイプ VARCHAR(1) の入力引数。 authidtype が存在しないか、NULL または空ストリングである場合、空の結果表が戻されます。 authidtype に考えられる値は以下のとおりです。
  • G: グループ
  • R: ロール
  • U: ユーザー

許可

このルーチンを実行するには、以下のいずれかの権限が必要です。
  • ルーチンに対する EXECUTE 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限

デフォルトの PUBLIC 特権

制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。

戻される情報

表 1. AUTH_LIST_ROLES_FOR_AUTHID の結果セット
列名 データ・タイプ 説明
GRANTOR VARCHAR(128) ロールの認可者。
GRANTORTYPE CHAR(1) 認可者のタイプ:
  • U = 認可者は個々のユーザー
GRANTEE VARCHAR(128) ユーザーがロールを付与しました。
GRANTEETYPE CHAR(1) 被認可者のタイプ:
  • G = GRANTEE はグループ。
  • R = GRANTEE はロール。
  • U= 被認可者はユーザー。
ROLENAME VARCHAR(128) グループまたは別のロールを介して許可 ID に直接または間接に付与されたロールの名前。
CREATE_TIME TIMESTAMP ロールが作成された時刻。
ADMIN CHAR(1) ロールを付与したり、ロールを取り消したり、またはロールに関するコメントを付けたりする特権。
  • N = 保有しない
  • Y= 保有する

ロール INTERN をロール DOCTOR に、さらにロール DOCTOR をロール SPECIALIST に付与してから、ロール SPECIALIST をユーザー ALICE に付与することについて考慮します。 ALICE はグループ HOSPITAL に属しており、ロール EMPLOYEE はグループ HOSPITAL に付与されます。 また、ALICE は特殊グループ PUBLIC にも属しており、ロール PATIENTS が PUBLIC に付与されています。

例 1: ユーザー ALICE に付与されたすべてのロールを取得します。
  SELECT GRANTOR, GRANTORTYPE, GRANTEE, GRANTEETYPE, ROLENAME, 
    CREATE_TIME, ADMIN 
  FROM TABLE (SYSPROC.AUTH_LIST_ROLES_FOR_AUTHID ('ALICE', 'U') ) AS T
以下はこの照会の出力例です。
GRANTOR GRANTORTYPE GRANTEE    GRANTEETYPE ROLENAME   CREATE_TIME                ADMIN
------- ----------- -------    ----------- --------   -------------------------- -----
ZURBIE  U           DOCTOR     R           INTERN     2006-08-01-15.09.58.537399 N    
ZURBIE  U           SPECIALIST R           DOCTOR     2006-08-01-15.10.04.540660 N    
ZURBIE  U           ALICE      U           SPECIALIST 2006-08-01-15.10.08.776218 N    
ZURBIE  U           HOSPITAL   G           EMPLOYEE   2006-08-01-15.10.14.277576 N    
ZURBIE  U           PUBLIC     G           PATIENTS   2006-08-01-15.10.18.878609 N    

  5 record(s) selected.
例 2: グループ HOSPITAL に付与されたすべてのロールを取得します。
  SELECT GRANTOR, GRANTORTYPE, GRANTEE, GRANTEETYPE, ROLENAME, 
    CREATE_TIME, ADMIN 
  FROM TABLE (SYSPROC.AUTH_LIST_ROLES_FOR_AUTHID ('HOSPITAL', 'G') ) AS T
以下はこの照会の出力例です。

GRANTOR GRANTORTYPE GRANTEE    GRANTEETYPE ROLENAME   CREATE_TIME                ADMIN
------- ----------- -------    ----------- --------   -------------------------- -----
ZURBIE  U           HOSPITAL   G           EMPLOYEE   2006-08-01-15.10.14.277576 N    

  1  record(s) selected.

例 3: ロール SPECIALIST に付与されたすべてのロールを取得します。

  SELECT GRANTOR, GRANTORTYPE, GRANTEE, GRANTEETYPE, ROLENAME, 
    CREATE_TIME, ADMIN 
  FROM TABLE (SYSPROC.AUTH_LIST_ROLES_FOR_AUTHID ('SPECIALIST', 'R') ) AS T 
以下はこの照会の出力例です。

GRANTOR GRANTORTYPE GRANTEE    GRANTEETYPE ROLENAME   CREATE_TIME                ADMIN
------- ----------- -------    ----------- --------   -------------------------- -----
ZURBIE  U           DOCTOR     R           INTERN     2006-08-01-15.09.58.537399 N    
ZURBIE  U           SPECIALIST R           DOCTOR     2006-08-01-15.10.04.540660 N    

  2  record(s) selected.
例 4: グループ PUBLIC に付与されたすべてのロールを取得します。
  SELECT GRANTOR, GRANTORTYPE, GRANTEE, GRANTEETYPE, ROLENAME, 
    CREATE_TIME, ADMIN 
  FROM TABLE (SYSPROC.AUTH_LIST_ROLES_FOR_AUTHID ('PUBLIC', 'G') ) AS T
以下はこの照会の出力例です。

GRANTOR GRANTORTYPE GRANTEE    GRANTEETYPE ROLENAME   CREATE_TIME                ADMIN
------- ----------- -------    ----------- --------   -------------------------- -----
ZURBIE  U           PUBLIC     G           PATIENTS   2006-08-01-15.10.18.878609 N    

  1 record(s) selected.

使用上の注意

AUTH_LIST_ROLES_FOR_AUTHID 表関数の出力は AUTHIDTYPE に応じて異なります。

  • ユーザーの場合、別のロールまたはそのユーザーが属する別のグループ (または PUBLIC) を介して直接または間接にユーザーに付与されたロールを戻します。
  • グループの場合、別のロールを介して直接または間接にグループに付与されたロールを戻します。
  • ロールの場合、別のロールを介して直接または間接にロールに付与されたロールを戻します。