この記事では権限の確認方法について解説します。
システム権限の確認方法
現在接続しているユーザのシステム権限は以下のSQLで確認できます。
select * from user_sys_privs;
このSQLを実行すると以下のように表示されます。
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADMIN_OPTION COMMON INHERITED
-------- -------------------- ------------ ------ ---------
TEST UNLIMITED TABLESPACE NO NO NO
TEST CREATE SESSION NO NO NO
項目の意味は以下の通りです。
USERNAME:ユーザ名
PRIVILEGE:付与されているシステム権限
ADMIN_OPTION:ADMIN OPTIONの有無
COMMON:CONTAINER=ALLで権限が付与されているかどうか
INHERITED:権限付与が別のコンテナから継承されているかどうか
オブジェクト権限の確認方法
現在接続しているユーザのオブジェクト権限は以下のSQLで確認できます。
自身に付与された権限だけでなく、自身のオブジェクトの権限で他のユーザに付与されている権限も表示されます。
select * from user_tab_privs;
このSQLを実行すると以下のように表示されます。
SQL> select * from user_tab_privs;
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY COMMON TYPE INHERITED
------- ----- ----------- ------- ------------------ --------- --------- ------ ------- ---------
RDTEST SYS DBMS_REDACT SYS EXECUTE NO NO NO PACKAGE NO
RDTEST TEST CARD TEST SELECT NO NO NO TABLE NO
RDTEST TEST ID TEST SELECT NO NO NO TABLE NO
PUBLIC SYS RDTEST RDTEST INHERIT PRIVILEGES NO NO NO USER NO
項目の意味は以下の通りです。
GRANTEE:権限を付与されたユーザ、ロール名
OWNER:オブジェクトの所有者
TABLE_NAME:オブジェクト名
GRANTOR:権限を付与したユーザ
PRIVILEGE:オブジェクトについての権限
GRANTABLE:GRANT OPTIONが付与されているかどうか
HIERARCHY:HIERARCHY OPTION(サブオブジェクトへの権限付与ができるか)が付与されているかどうか
COMMON:CONTAINER=ALLで権限が付与されているかどうか
TYPE:オブジェクトのタイプ
INHERITED:権限付与が別のコンテナから継承されているかどうか