oracleでユーザーが持つ権限を照会する方法

Oracleデータベースでは、次のようにしてユーザー権限を照会できます

  1. システムで提供されるビューを使用:ユーザーに付与された権限の確認には、システムで提供されるDBA_SYS_PRIVSおよびDBA_TAB_PRIVSビューを使用できます。これらのビューには、ユーザーに付与されたシステム権限とオブジェクト権限の記録が保持されています。
  2. システム上でユーザーが持つ権限を照会します。
  3. SELECT privilege FROM dba_sys_privs WHERE grantee = ‘ユーザー名’;
  4. ユーザーの持っているオブジェクト権限を確認する:
  5. SELECT privilege, owner, table_name FROM dba_tab_privs WHERE grantee = ‘ユーザー名’;
  6. DBAレベル権限が必要です。DBA権限がない場合は、ALL_SYS_PRIVSおよびALL_TAB_PRIVSビューを使用して所有の権限を参照できます。
  7. ユーザーのロールを確認します。ユーザーは、ロールを通じて権限を間接的に所有している場合があります。所有している権限を確認するには、ユーザーのロールを確認できます。
  8. ユーザーに割り当てられたロールの検索
  9. SELECT granted_role FROM dba_role_privs WHERE grantee = ‘ユーザ名’;
  10. ロールに付与されている権限を確認する:
  11. SELECT privilege FROM dba_sys_privs WHERE grantee IN (SELECT granted_role FROM dba_role_privs WHERE grantee = ‘ユーザー名’);
  12. DBAレベルの権限が必要ですが、当前ユーザーにDBA権限がない場合は、それに相当するALL_ROLE_PRIVSビューとALL_SYS_PRIVSビューを使用してクエリできます。
  13. ユーザーに付与された権限の直接的な検索方法:USER_SYS_PRIVSとUSER_TAB_PRIVSビューを使用して、ユーザーに付与された権限を直接的に検索できます。
  14. ユーザーが直接所有しているシステム権限の問い合わせ
  15. SELECT privilege FROM user_sys_privs;
  16. ユーザーに直接付与されているオブジェクトの権限を確認する:
  17. SELECT privilege, owner, table_name FROM user_tab_privs;
  18. 注意: 上記クエリは、現在ユーザーが直接所有する権限のみを照会できます。他のユーザーが所有する権限は照会できません。

ユーザー権限の取得についてよく使われる方法は上記のようになるが、具体的な要請に従い、適切な方法を選択して照会を行ってください。

bannerAds