システム内に存在するロールや、各ロールが持つ権限を確認できます。
ビューを使用したロールの確認
ロールを確認するシナリオは以下のとおりです:
現在のシステム内のロールを確認する
管理者は
DBA_ROLESビューを使用して、システム内のすべてのロールを確認できます。obclient> SELECT * FROM DBA_ROLES; +---------------------+-------------------+---------------------+ | ROLE | PASSWORD_REQUIRED | AUTHENTICATION_TYPE | +---------------------+-------------------+---------------------+ | CONNECT | NO | NONE | | RESOURCE | NO | NONE | | DBA | NO | NONE | | PUBLIC | NO | NONE | | STANDBY_REPLICATION | NO | NONE | | ROLE1 | NO | NONE | +---------------------+-------------------+---------------------+ 6 rows in setDBA_ROLESビューのフィールドとその説明については、DBA_ROLESを参照してください。ロールが含むロールを確認する
クエリ対象のロールを持つユーザーは、
ROLE_ROLE_PRIVSビューを使用して、そのロールが含むロールを確認できます。そのロールに他のロールが含まれていない場合、クエリ結果は空になります。obclient> SELECT * FROM ROLE_ROLE_PRIVS WHERE role='ROLE1'; +-------+--------------+--------------+ | ROLE | GRANTED_ROLE | ADMIN_OPTION | +-------+--------------+--------------+ | ROLE1 | ROLE2 | NO | +-------+--------------+--------------+ 1 row in setROLE_ROLE_PRIVSビューのフィールドとその説明については、ROLE_ROLE_PRIVSを参照してください。ロールが持つシステム権限を確認する
管理者は
ROLE_SYS_PRIVSビューを使用して、特定のロールが持つシステム権限を確認できます。obclient> SELECT * FROM ROLE_SYS_PRIVS WHERE role='CONNECT'; +---------+----------------+--------------+ | ROLE | PRIVILEGE | ADMIN_OPTION | +---------+----------------+--------------+ | CONNECT | CREATE SESSION | NO | +---------+----------------+--------------+ 1 row in setROLE_SYS_PRIVSビューのフィールドとその説明については、ROLE_SYS_PRIVSを参照してください。ロールが持つオブジェクト権限を確認する
現在クエリ対象のロールを持つユーザーは、
ROLE_TAB_PRIVSビューを使用して、そのロールが持つオブジェクト権限を確認できます。obclient> SELECT * FROM ROLE_TAB_PRIVS WHERE role='ROLE1'; +-------+-------+------------+-------------+-----------+-----------+ | ROLE | OWNER | TABLE_NAME | COLUMN_NAME | PRIVILEGE | GRANTABLE | +-------+-------+------------+-------------+-----------+-----------+ | ROLE1 | SYS | T1 | NULL | SELECT | NO | +-------+-------+------------+-------------+-----------+-----------+ 1 row in setROLE_TAB_PRIVSビューのフィールドとその説明については、ROLE_TAB_PRIVSを参照してください。