ユーザーに付与されているシステム権限を確認する

Pocket

【概要】
DBA_ROLE_PRIVS、DBA_USERS、DBA_SYS_PRIVS、およびDBA_ROLESを結合することにより、ユーザーに付与されているシステム権限を確認する。
【SQL文】
/*
|| ■ユーザーに付与されているシステム権限を確認する
||
|| 【項目の説明】
||
|| USERNAME : ユーザー名
|| PRIVS : システム権限
|| ADMIN_OPTION : ADMIN OPTION付きで権限が付与された場合は、YES
*/
set echo off
set line 80
set pages 10000

clear col
ttitle off

col USERNAME for a20
col PRIVS for a30
col ADMIN_OPTION for a10

ttitle left ‘■■■ ユーザー付与システム権限情報 ■■■’
spool usr_sysprivs_info.lis

SELECT username,
, privs
, admin_option
FROM (SELECT grantee AS “USERNAME”
, granted_role AS “ROLE”
, admin_option
FROM dba_role_privs a
, dba_users b
WHERE a.grantee = b.username
) TAB1
, (SELECT b.role AS “ROLE”
, a.privilege AS “PRIVS”
FROM dba_sys_privs a
, dba_roles b
WHERE b.role = a.grantee
) TAB2
WHERE tab1.role = tab2.role
AND username NOT IN (‘SYS’, ‘SYSTEM’)
GROUP BY username,privs, admin_option
ORDER BY 1,2
;
spooll off
clear col
ttitle off
set line 80

以上です (^^♪