Oracleでdbaロールを持つユーザーの検索方法
デフォルトのDBAロールは、Oracle Databaseのインストール時に自動的に作成されます。 このロールには、ほとんどのデータベースシステム権限が含まれています。 したがって、DBAロールは実際のデータベース管理者にのみ付与する必要があります。 どのユーザーにdbaロールが付与されているかを知りたい場合は、SYSスキーマ内のdba_role_privsを照会する必要があります。USERS_HAVING_DBA_ROLES DBAロールにはSYSDBAまたはSYSOPERシステム権限が含まれていません。 これらは、管理者がデータベースの作成やインスタンスの起動や停止などの基本的なデータベース管理タスクを実行できるようにする特別な管理権限です。
このロールは、権限付与対象ユーザー granted_role、admin optionが付与されているかどうか、およびそのロールがデフォルトのロールであるかどうかを示します。
USER_ROLE_PRIVSは、現在のユーザーに付与されているロールを示します。
SQL>desc dba_role_privs
名前Null? タイプ
—- — —-
権限付与対象VARCHAR2(30)
GRANTED_ROLE NOT NULL VARCHAR2(30)
ADMIN_OPTION VARCHAR2(3)
DEFAULT_ROLE VARCHAR2(3)
GRANTEE:付与を受けているユーザーまたはロールの名前
——
GRANTED_ROLE:付与されたロール名
———
ADMIN_OPTION:付与がADMIN OPTION付きであったか(YES)か(NO)かを示します。)
———
DEFAULT_ROLE: ロールがユーザーのデフォルトロールとして指定されているかどうかを示します(YES)またはno(NO)
以下のクエリを使用すると、DBA権限を持つユーザーを見つけるこ
SQL> select * from dba_role_privs where granted_role='DBA';
GRANTEE GRANTED_ROLE ADM DEF
--------- ------------ --- ---
SYS DBA YES YES
SYSTEM DBA YES YES
セキュリティ上の理由からユーザーに付与されたDBAロールを取り消す必要がある場合は、多くの状況が発生します。 上記のクエリは、DBA権限を持つユーザーを見つけるのに役立ちます。