AUTH_LIST_AUTHORITIES_FOR_AUTHID 表関数
AUTH_LIST_AUTHORITIES_FOR_AUTHID 表関数は、データベース構成ファイルにあるか、許可 ID に直接付与されたか、あるいはグループまたはロールを介して間接的に付与された許可 ID によって保持されているすべての権限を戻します。
構文
スキーマは 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 に付与されます。
戻される情報
| 列名 | データ・タイプ | 説明 |
|---|---|---|
| AUTHORITY | VARCHAR(128) | 許可 ID によって保持される権限。 |
| D_USER | CHAR(1) | authidtype がユーザー (U) の場合に、authid に直接付与される権限。
authidtype がグループ (G) またはロール (R) の場合、値は適用外 ('*') です。
|
| D_GROUP | CHAR(1) | authidtype がグループ (G) の場合に、authid に直接付与される権限、または authidtype がユーザー (U) の場合に authid が属するグループに付与される権限。
authidtype がロール (R) の場合、値は適用外 ('*') です。
|
| D_PUBLIC | CHAR(1) | authidtype がユーザー (U) またはグループ (G) の場合に、PUBLIC という authid に直接付与される権限。
authidtype がロール (R) の場合、値は適用外 ('*') です。
|
| ROLE_USER | CHAR(1) | authidtype がユーザー (U) の場合に、authid に付与されたロールに直接付与される権限。
authidtype がグループ (G) またはロール (R) の場合、値は適用外 ('*') です。ロールはロール階層の一部である可能性があります。
|
| ROLE_GROUP | CHAR(1) | authidtype がグループ (G) の場合に、authid に付与されたロールに直接付与される権限。
authidtype がユーザー (U) またはロール (R) の場合、値は適用外 ('*') です。
ロールはロール階層の一部である可能性があります。
|
| ROLE_PUBLIC | CHAR(1) | authidtype がユーザー (U) またはグループ (G) の場合に、PUBLIC という authid に付与されたロールに直接付与される権限。
authidtype がロール (R) の場合、値は適用外 ('*') です。ロールはロール階層の一部である可能性があります。
|
| D_ROLE | CHAR(1) | ロールに付与された権限、またはそのロールに付与されているロールに付与された権限。
authidtype がユーザー (U) またはグループ (G) の場合、値は適用外 ('*') です。
ロールはロール階層の一部である可能性があります。
|
例
特殊グループ 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
使用上の注意
- authid に直接付与された
- authid が属するグループ (またはそのグループに付与されたロール) に付与された
- authid に付与されたロール (またはそのロールに付与されたロール) に付与された
- PUBLIC (または PUBLIC に付与されたロール) に付与された
