|
Save following script as user_privs, run it under sqlplus. It will ask you to type user's name, then hit return and it will spool a text file user_user_name_privs.txt.
set linesize 160
set feedback off
set echo off
set trimspool on
col "Username" for a14
col "Rolename" for a14
col "Obj Owner" for a14
col "Obj" for a30
col "Obj Priv" for a10
col "Sys Priv" for a24
col "Granted Role" for a22
col "dummy" noprint
-- This will take out repeating values for "user"
--
accept uname prompt 'Enter the user name:'
-- TTITLE CENTER 'USER PRIVILEDGES'
break on Username skip 1
spool user_&uname._privs.txt
select username "Username",
owner "Obj Owner",
table_name "Obj",
privilege "Obj Priv",
' ' "Sys Priv",
' ' "Granted Role",
1 "dummy"
from dba_users u, dba_tab_privs t
where u.username = t.grantee
and u.username not in ('SYS','SYSTEM','DBSNMP')
and t.grantee=upper('&uname')
union
select username,
' ',
' ',
' ',
privilege,
' ',
2 "dummy"
from dba_users u, dba_sys_privs s
where u.username = s.grantee
and u.username not in ('SYS','SYSTEM','DBSNMP')
and s.grantee=upper('&uname')
union
select username,
' ',
' ',
' ',
' ',
granted_role,
3 "dummy"
from dba_users u, dba_role_privs r
where u.username = r.grantee
and u.username not in ('SYS','SYSTEM','DBSNMP')
and r.grantee=upper('&uname')
order by 1, 7 desc;
/*
break on role skip 1
-- spool roleprivinventory.txt
set newpage 0
-- TTITLE skip ' ' CENTER 'ROLE PRIVILEDGES'
select role "Rolename",
owner "Obj Owner",
table_name "Obj",
privilege "Obj Priv",
-- ' ' "Sys Priv",
-- ' ' "Granted Role",
1 "dummy"
from dba_roles u, dba_tab_privs t
where u.role = t.grantee
and t.owner not in ('SYS','SYSTEM','DBSNMP')
and t.grantee=upper('&uname')
order by 1
*/
/
spool off
set feedback on
set pagesize 24
set linesize 100
set echo on |
|