権限の確認方法

この記事では権限の確認方法について解説します。

 システム権限の確認方法

現在接続しているユーザのシステム権限は以下の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:権限付与が別のコンテナから継承されているかどうか