AUTH_LIST_AUTHORITIES_FOR_AUTHID 表関数

AUTH_LIST_AUTHORITIES_FOR_AUTHID 表関数は、データベース構成ファイルにあるか、許可 ID に直接付与されたか、あるいはグループまたはロールを介して間接的に付与された許可 ID によって保持されているすべての権限を戻します。

構文

構文図を読む構文図をスキップするAUTH_LIST_AUTHORITIES_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_AUTHORITIES_FOR_AUTHID について戻される情報
列名 データ・タイプ 説明
AUTHORITY VARCHAR(128) 許可 ID によって保持される権限。
D_USER CHAR(1) authidtype がユーザー (U) の場合に、authid に直接付与される権限。 authidtype がグループ (G) またはロール (R) の場合、値は適用外 ('*') です。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外
D_GROUP CHAR(1) authidtype がグループ (G) の場合に、authid に直接付与される権限、または authidtype がユーザー (U) の場合に authid が属するグループに付与される権限。 authidtype がロール (R) の場合、値は適用外 ('*') です。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外
D_PUBLIC CHAR(1) authidtype がユーザー (U) またはグループ (G) の場合に、PUBLIC という authid に直接付与される権限。 authidtype がロール (R) の場合、値は適用外 ('*') です。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外
ROLE_USER CHAR(1) authidtype がユーザー (U) の場合に、authid に付与されたロールに直接付与される権限。 authidtype がグループ (G) またはロール (R) の場合、値は適用外 ('*') です。ロールはロール階層の一部である可能性があります。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外
ROLE_GROUP CHAR(1) authidtype がグループ (G) の場合に、authid に付与されたロールに直接付与される権限。 authidtype がユーザー (U) またはロール (R) の場合、値は適用外 ('*') です。 ロールはロール階層の一部である可能性があります。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外
ROLE_PUBLIC CHAR(1) authidtype がユーザー (U) またはグループ (G) の場合に、PUBLIC という authid に付与されたロールに直接付与される権限。 authidtype がロール (R) の場合、値は適用外 ('*') です。ロールはロール階層の一部である可能性があります。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外
D_ROLE CHAR(1) ロールに付与された権限、またはそのロールに付与されているロールに付与された権限。 authidtype がユーザー (U) またはグループ (G) の場合、値は適用外 ('*') です。 ロールはロール階層の一部である可能性があります。
  • N = 保有しない
  • Y= 保有する
  • * = 適用外

特殊グループ PUBLIC を介してデフォルトで BIND、CONNECT、CREATETAB、および IMPLICIT_SCHEMA 特権を保持するユーザー ALICE について考慮します。 ALICE は、SYSADM、SYSCTRL、および SYSMAINT というシステム権限を持つグループ ADMIN1 のメンバーです。 また、DBADM 権限を持つグループ ADMIN2 のメンバーでもあります。 さらに、DBADM および SECADM データベース権限も付与されています。 ロール R1 が ALICE に付与されました。 LOAD 権限がロール R1 に付与されました。 ロール R2 がグループ ADMIN1 に付与されました。 CREATE_NOT_FENCED_ROUTINE 権限がロール R2 に付与されました。

例 1: ユーザー ALICE が自分自身に直接、またはグループ PUBLIC またはロールを介して間接に付与したすべての権限を取得します。

SELECT AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE 
   FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('ALICE', 'U') ) AS T 
   ORDER BY AUTHORITY


AUTHORITY                 D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE
------------------------- ------ ------- -------- --------- ---------- ----------- ------
ACCESSCTRL                N      N       N        N         N          N           *     
BINDADD                   N      N       Y        N         N          N           *     
CONNECT                   N      N       Y        N         N          N           *     
CREATE_EXTERNAL_ROUTINE   N      N       N        N         N          N           *     
CREATE_NOT_FENCED_ROUTINE N      N       N        N         Y          N           *     
CREATETAB                 N      N       Y        N         N          N           *     
DATAACCESS                N      N       N        N         N          N           *     
DBADM                     Y      Y       N        N         N          N           *     
EXPLAIN                   N      N       N        N         N          N           *     
IMPLICIT_SCHEMA           N      N       Y        N         N          N           *     
LOAD                      N      N       N        Y         N          N           *     
QUIESCE_CONNECT           N      N       N        N         N          N           *     
SECADM                    Y      N       N        N         N          N           *     
SQLADM                    N      N       N        N         N          N           *     
SYSADM                    *      Y       *        *         *          *           *     
SYSCTRL                   *      Y       *        *         *          *           *     
SYSMAINT                  *      Y       *        *         *          *           *     
SYSMON                    *      N       *        *         *          *           *     
WLMADM                    N      N       N        N         N          N           *     

例 2: グループ ADMIN1 がそれ自身に直接、または PUBLIC またはロールを介して間接に付与したすべての権限を取得します。

SELECT AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE 
   FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('ADMIN1', 'G') ) AS T 
   ORDER BY AUTHORITY

AUTHORITY                 D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE
------------------------- ------ ------- -------- --------- ---------- ----------- ------
ACCESSCTRL                *      N       *        *         N          *           *     
BINDADD                   *      N       *        *         N          *           *     
CONNECT                   *      N       *        *         N          *           *     
CREATE_EXTERNAL_ROUTINE   *      N       *        *         N          *           *     
CREATE_NOT_FENCED_ROUTINE *      N       *        *         Y          *           *     
CREATETAB                 *      N       *        *         N          *           *     
DATAACCESS                *      N       *        *         N          *           *     
DBADM                     *      N       *        *         N          *           *     
EXPLAIN                   *      N       *        *         N          *           *     
IMPLICIT_SCHEMA           *      N       *        *         N          *           *     
LOAD                      *      N       *        *         N          *           *     
QUIESCE_CONNECT           *      N       *        *         N          *           *     
SECADM                    *      N       *        *         N          *           *     
SQLADM                    *      N       *        *         N          *           *     
SYSADM                    *      Y       *        *         *          *           *     
SYSCTRL                   *      Y       *        *         *          *           *     
SYSMAINT                  *      Y       *        *         *          *           *     
SYSMON                    *      N       *        *         *          *           *     
WLMADM                    *      N       *        *         N          *           *     

例 3: 特殊グループ PUBLIC がそれ自身に直接、またはロールを介して間接に付与したすべての権限を取得します。


SELECT AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE 
   FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('PUBLIC', 'G') ) AS T 
   ORDER BY AUTHORITY

1                         D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE
------------------------- ------ ------- -------- --------- ---------- ----------- ------
ACCESSCTRL                *      *       N        *         *          N           *     
BINDADD                   *      *       Y        *         *          N           *     
CONNECT                   *      *       Y        *         *          N           *     
CREATE_EXTERNAL_ROUTINE   *      *       N        *         *          N           *     
CREATE_NOT_FENCED_ROUTINE *      *       N        *         *          N           *     
CREATETAB                 *      *       Y        *         *          N           *     
DATAACCESS                *      *       N        *         *          N           *     
DBADM                     *      *       N        *         *          N           *     
EXPLAIN                   *      *       N        *         *          N           *     
IMPLICIT_SCHEMA           *      *       Y        *         *          N           *     
LOAD                      *      *       N        *         *          N           *     
QUIESCE_CONNECT           *      *       N        *         *          N           *     
SECADM                    *      *       N        *         *          N           *     
SQLADM                    *      *       N        *         *          N           *     
SYSADM                    *      *       *        *         *          *           *     
SYSCTRL                   *      *       *        *         *          *           *     
SYSMAINT                  *      *       *        *         *          *           *     
SYSMON                    *      *       *        *         *          *           *     
WLMADM                    *      *       N        *         *          N           *     

例 4: ロール R1 がそれ自身に直接、またはロールを介して間接に付与したすべての権限を取得します。 この場合、ロール R2 もロール R1 に付与されたことを考慮してください。


SELECT AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE 
   FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('R1', 'R') ) AS T 
   ORDER BY AUTHORITY

AUTHORITY                 D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE
------------------------- ------ ------- -------- --------- ---------- ----------- ------
ACCESSCTRL                *      *       *        *         *          *           N     
BINDADD                   *      *       *        *         *          *           N     
CONNECT                   *      *       *        *         *          *           N     
CREATE_EXTERNAL_ROUTINE   *      *       *        *         *          *           N     
CREATE_NOT_FENCED_ROUTINE *      *       *        *         *          *           Y     
CREATETAB                 *      *       *        *         *          *           N     
DATAACCESS                *      *       *        *         *          *           N     
DBADM                     *      *       *        *         *          *           N     
EXPLAIN                   *      *       *        *         *          *           N     
IMPLICIT_SCHEMA           *      *       *        *         *          *           N     
LOAD                      *      *       *        *         *          *           Y     
QUIESCE_CONNECT           *      *       *        *         *          *           N     
SECADM                    *      *       *        *         *          *           N     
SYSADM                    *      *       *        *         *          *           *     
SQLADM                    *      *       *        *         *          *           N     
SYSCTRL                   *      *       *        *         *          *           *     
SYSMAINT                  *      *       *        *         *          *           *     
SYSMON                    *      *       *        *         *          *           *     
WLMADM                    *      *       *        *         *          *           N     

使用上の注意

AUTH_LIST_AUTHORITIES_FOR_AUTHID 表関数の出力は authidtype に応じて異なります。 例えば、USER の authidtype の場合、authid が以下の手段で保持しているすべての権限を戻します。
  • authid に直接付与された
  • authid が属するグループ (またはそのグループに付与されたロール) に付与された
  • authid に付与されたロール (またはそのロールに付与されたロール) に付与された
  • PUBLIC (または PUBLIC に付与されたロール) に付与された