AUTH_LIST_ROLES_FOR_AUTHID 関数 - ロールのリストを戻す
AUTH_LIST_ROLES_FOR_AUTHID 関数は、指定の許可 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 に付与されます。
戻される情報
| 列名 | データ・タイプ | 説明 |
|---|---|---|
| GRANTOR | VARCHAR(128) | ロールの認可者。 |
| GRANTORTYPE | CHAR(1) | 認可者のタイプ:
|
| GRANTEE | VARCHAR(128) | ユーザーがロールを付与しました。 |
| GRANTEETYPE | CHAR(1) | 被認可者のタイプ:
|
| ROLENAME | VARCHAR(128) | グループまたは別のロールを介して許可 ID に直接または間接に付与されたロールの名前。 |
| CREATE_TIME | TIMESTAMP | ロールが作成された時刻。 |
| ADMIN | CHAR(1) | ロールを付与したり、ロールを取り消したり、またはロールに関するコメントを付けたりする特権。
|
例
ロール 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) を介して直接または間接にユーザーに付与されたロールを戻します。
- グループの場合、別のロールを介して直接または間接にグループに付与されたロールを戻します。
- ロールの場合、別のロールを介して直接または間接にロールに付与されたロールを戻します。
