管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

ユーザに割り当てられたロールと、ロールに割り当てられている権限を調べる(Oracle)

Oracleでユーザに割り当てられたロールと、ロールに割り当てられている権限を調べる方法。
忘れがちなのでメモ

環境

SQL> select banner_full from v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

ユーザに割り当てられたロールと、ロールに割り当てられている権限を調べる

ユーザに割り当てられたロールを調べる

SELECT
   GRANTEE
   ,GRANTED_ROLE
FROM
   DBA_ROLE_PRIVS
WHERE
    GRANTEE ='SCOTT';

GRANTEE
--------------------------------------------------------------------------------
GRANTED_ROLE
--------------------------------------------------------------------------------
SCOTT
RESOURCE

SCOTT
PLUSTRACE

SCOTT
CONNECT

ロールに含まれる権限を調べる

SELECT
    PRIVILEGE
FROM
    DBA_SYS_PRIVS
WHERE
    GRANTEE = 'CONNECT'
ORDER BY
    PRIVILEGE;

PRIVILEGE
----------------------------------------
CREATE SESSION
SET CONTAINER

ユーザを作ったらとりあえずCONNECTロールを付与することを忘れずにいたいですね。