User Privileges for all users

SET SERVEROUTPUT ON
SET ECHO OFF
SET FEEDBACK OFF
SET PAGES 1000
SET LINES 132

REM
REM
REM || Title : show_users_privs.sql
REM ||
REM || Purpose : Script which display Privs for All Users.
REM ||
REM || Release No : 1
REM ||
REM || Variables : None
REM ||
REM || Schema : system
REM ||
REM


COLUMN uname FORMAT A25 HEADING 'Username'
COLUMN rname FORMAT A25 HEADING 'Rolename'
COLUMN priv FORMAT A30 HEADING 'Privilege'

SELECT DECODE(sa1.grantee#, 1, 'public', u1.name) uname,
SUBSTR(u2.name,1,20) rname,
SUBSTR(spm.name,1,27) priv
FROM sys.sysauth$ sa1,
sys.sysauth$ sa2,
sys.user$ u1,
sys.user$ u2,
sys.system_privilege_map spm
WHERE sa1.grantee# = u1.user#
AND sa1.privilege# = u2.user#
AND u2.user# = sa2.grantee#
AND sa2.privilege# = spm.privilege
UNION
SELECT u.name,
NULL,
SUBSTR(spm.name,1,27)
FROM sys.system_privilege_map spm,
sys.sysauth$ sa,
sys.user$ u
WHERE sa.grantee#=u.user#
AND sa.privilege#=spm.privilege

SPOOL show_user_privs.lst
/
SPOOL OFF

SET SERVEROUTPUT ON
SET ECHO OFF
SET FEEDBACK OFF
SET PAGES 60

CLEAR BREAKS
CLEAR COL


This script is provided for educational purposes only. The script has been tested and appears to work as intended. However, you should always test any script before relying on it. No responsibility will be accepted for Lost or damage that may occur from it's use.