The script is of great use to find details about a database user. It will give all the information you need to know. set serveroutput on feedback off verify off pages 0 spool c:userinfo.txt declare wuser varchar2 (30) := '&1'; /* Users */ cursor cusr is select username, default_tablespace || ' / ' || temporary_tablespace tablespace, profile from dba_users where username like upper(wuser); /* Roles granted */ cursor crole (u in varchar2) is select granted_role, admin_option, default_role from dba_role_privs where grantee = upper(u) order by granted_role; /* System privileges granted */ cursor csys (u in varchar2) is select privilege, admin_option from dba_sys_privs where grantee = upper(u) order by privilege; /* Object privileges granted */ cursor cobj (u in varchar2) is select (owner ||'.'|| table_name) object, privilege from dba_tab_privs where grantee = upper(u) order by owner, table_name; /* Column privileges granted */ cursor ccol (u in varchar2) is select (owner ||'.'|| table_name ||'.'|| column_name) wcolumn, privilege from dba_col_privs where grantee = upper(u) order by owner, table_name, column_name; wcount number := 0; wdate varchar2 (25) := to_char(sysdate,'Mon DD, YYYY HH:MI AM'); w5space char(5) := '. '; wdum1 varchar2 (255); wdum2 varchar2 (255); wdum3 varchar2 (255); wdum4 varchar2 (255); wdum5 varchar2 (255); wdum6 varchar2 (255); wdum7 varchar2 (255); begin dbms_output.enable(100000); for rusr in cusr loop dbms_output.put_line('********** USER INFORMATION ********** ' || wda te); dbms_output.put_line('*------------------------------------------------------------- -------------*'); dbms_output.put_line('Username Default / Temporary Tablespace Profi le'); dbms_output.put_line('*------------------------------------------------------------- -------------*'); wcount := wcount + 1; dbms_output.put_line(rpad(rusr.username,17) || rpad(rusr.tablespace,40) || rpad(rusr .profile,20)); dbms_output.put_line(w5space); open crole (rusr.username); fetch crole into wdum1, wdum2, wdum3; if crole%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO ROLES GRANTED **** *****'); close crole; else close crole; dbms_output.put_line('********** ' || rusr.username || ' - ROLES GRANTED ******* **'); dbms_output.put_line(w5space || 'Role name Admin Default'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for rrole in crole (rusr.username) loop dbms_output.put_line(w5space || rpad(rrole.granted_role,50) || rpad(rrole.admin_ option,10) || rpad(rrole.default_role,10)); end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line(w5space); open csys (rusr.username); fetch csys into wdum1, wdum2; if csys%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO SYSTEM PRIVILEGES G RANTED *********'); close csys; else close csys; dbms_output.put_line('********** ' || rusr.username || ' - SYSTEM PRIVILEGES GRAN TED *********'); dbms_output.put_line(w5space || 'System Privilege Admin'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for rsys in csys (rusr.username) loop dbms_output.put_line(w5space || rpad(rsys.privilege,50) || rpad(rsys.admin_optio n,10)); end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line(w5space); open cobj (rusr.username); fetch cobj into wdum1, wdum2; if cobj%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO OBJECT PRIVILEGES G RANTED *********'); close cobj; else close cobj; dbms_output.put_line('********** ' || rusr.username || ' - OBJECT PRIVILEGES GRAN TED *********'); dbms_output.put_line(w5space || 'Object Name Privileg e'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for robj in cobj (rusr.username) loop dbms_output.put_line(w5space || rpad(robj.object,40) || rpad(robj.privilege,30)) ; end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line(w5space); open ccol (rusr.username); fetch ccol into wdum1, wdum2; if ccol%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO COLUMN PRIVILEGES G RANTED *********'); close ccol; else close ccol; dbms_output.put_line('********** ' || rusr.username || ' - COLUMN PRIVILEGES GRAN TED *********'); dbms_output.put_line(w5space || 'Column Name Privilege'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for rcol in ccol (rusr.username) loop dbms_output.put_line(w5space || rpad(rcol.wcolumn,50) || rpad(rcol.privilege,20) ); end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line('*------------------------------------------------------------- -------------*'); end loop; if wcount =0 then dbms_output.put_line('******************************************************'); dbms_output.put_line('* *'); dbms_output.put_line('* Plese Verify Input Parameters... No Matches Found! *'); dbms_output.put_line('* *'); dbms_output.put_line('******************************************************'); end if; end; / set serveroutput off feedback on verify on pages 999 spool off prompt prompt Output saved at c:userinfo.txt
set serveroutput on feedback off verify off pages 0 spool c:userinfo.txt declare wuser varchar2 (30) := '&1'; /* Users */ cursor cusr is select username, default_tablespace || ' / ' || temporary_tablespace tablespace, profile from dba_users where username like upper(wuser); /* Roles granted */ cursor crole (u in varchar2) is select granted_role, admin_option, default_role from dba_role_privs where grantee = upper(u) order by granted_role; /* System privileges granted */ cursor csys (u in varchar2) is select privilege, admin_option from dba_sys_privs where grantee = upper(u) order by privilege; /* Object privileges granted */ cursor cobj (u in varchar2) is select (owner ||'.'|| table_name) object, privilege from dba_tab_privs where grantee = upper(u) order by owner, table_name; /* Column privileges granted */ cursor ccol (u in varchar2) is select (owner ||'.'|| table_name ||'.'|| column_name) wcolumn, privilege from dba_col_privs where grantee = upper(u) order by owner, table_name, column_name; wcount number := 0; wdate varchar2 (25) := to_char(sysdate,'Mon DD, YYYY HH:MI AM'); w5space char(5) := '. '; wdum1 varchar2 (255); wdum2 varchar2 (255); wdum3 varchar2 (255); wdum4 varchar2 (255); wdum5 varchar2 (255); wdum6 varchar2 (255); wdum7 varchar2 (255); begin dbms_output.enable(100000); for rusr in cusr loop dbms_output.put_line('********** USER INFORMATION ********** ' || wda te); dbms_output.put_line('*------------------------------------------------------------- -------------*'); dbms_output.put_line('Username Default / Temporary Tablespace Profi le'); dbms_output.put_line('*------------------------------------------------------------- -------------*'); wcount := wcount + 1; dbms_output.put_line(rpad(rusr.username,17) || rpad(rusr.tablespace,40) || rpad(rusr .profile,20)); dbms_output.put_line(w5space); open crole (rusr.username); fetch crole into wdum1, wdum2, wdum3; if crole%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO ROLES GRANTED **** *****'); close crole; else close crole; dbms_output.put_line('********** ' || rusr.username || ' - ROLES GRANTED ******* **'); dbms_output.put_line(w5space || 'Role name Admin Default'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for rrole in crole (rusr.username) loop dbms_output.put_line(w5space || rpad(rrole.granted_role,50) || rpad(rrole.admin_ option,10) || rpad(rrole.default_role,10)); end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line(w5space); open csys (rusr.username); fetch csys into wdum1, wdum2; if csys%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO SYSTEM PRIVILEGES G RANTED *********'); close csys; else close csys; dbms_output.put_line('********** ' || rusr.username || ' - SYSTEM PRIVILEGES GRAN TED *********'); dbms_output.put_line(w5space || 'System Privilege Admin'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for rsys in csys (rusr.username) loop dbms_output.put_line(w5space || rpad(rsys.privilege,50) || rpad(rsys.admin_optio n,10)); end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line(w5space); open cobj (rusr.username); fetch cobj into wdum1, wdum2; if cobj%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO OBJECT PRIVILEGES G RANTED *********'); close cobj; else close cobj; dbms_output.put_line('********** ' || rusr.username || ' - OBJECT PRIVILEGES GRAN TED *********'); dbms_output.put_line(w5space || 'Object Name Privileg e'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for robj in cobj (rusr.username) loop dbms_output.put_line(w5space || rpad(robj.object,40) || rpad(robj.privilege,30)) ; end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line(w5space); open ccol (rusr.username); fetch ccol into wdum1, wdum2; if ccol%notfound then dbms_output.put_line('********** ' || rusr.username || ' - NO COLUMN PRIVILEGES G RANTED *********'); close ccol; else close ccol; dbms_output.put_line('********** ' || rusr.username || ' - COLUMN PRIVILEGES GRAN TED *********'); dbms_output.put_line(w5space || 'Column Name Privilege'); dbms_output.put_line(w5space || '*----------------------------------------------- ----------------------*'); for rcol in ccol (rusr.username) loop dbms_output.put_line(w5space || rpad(rcol.wcolumn,50) || rpad(rcol.privilege,20) ); end loop; dbms_output.put_line(w5space); end if; dbms_output.put_line('*------------------------------------------------------------- -------------*'); end loop; if wcount =0 then dbms_output.put_line('******************************************************'); dbms_output.put_line('* *'); dbms_output.put_line('* Plese Verify Input Parameters... No Matches Found! *'); dbms_output.put_line('* *'); dbms_output.put_line('******************************************************'); end if; end; / set serveroutput off feedback on verify on pages 999 spool off prompt prompt Output saved at c:userinfo.txt