select text from
USER_SOURCE
where name =
'REMOVE_EMP'
order by line;
-Check privilege
granted to users
SELECT * FROM
DBA_SYS_PRIVS A
JOIN DBA_ROLE_PRIVS
B
ON
(A.GRANTEE=B.GRANTEE
and A.GRANTEE='SAK')
If you want more than just direct table grants (e.g.,
grants via roles, system privileges such as select any table, etc.), here are
some additional queries:
System privileges for a user:
SELECT PRIVILEGE
FROM sys.dba_sys_privs
WHERE grantee = 'SAK'
UNION
SELECT PRIVILEGE
FROM dba_role_privs rp JOIN role_sys_privs rsp ON (rp.granted_role = rsp.role)
WHERE rp.grantee = 'SAK'
ORDER BY 1;
FROM sys.dba_sys_privs
WHERE grantee = 'SAK'
UNION
SELECT PRIVILEGE
FROM dba_role_privs rp JOIN role_sys_privs rsp ON (rp.granted_role = rsp.role)
WHERE rp.grantee = 'SAK'
ORDER BY 1;
Direct grants to tables/views:
SELECT owner, table_name, select_priv, insert_priv, delete_priv,
update_priv, references_priv, alter_priv, index_priv
FROM table_privileges
WHERE grantee = <theUser>
ORDER BY owner, table_name;
FROM table_privileges
WHERE grantee = <theUser>
ORDER BY owner, table_name;
Indirect grants to tables/views:
SELECT DISTINCT owner, table_name, PRIVILEGE
FROM dba_role_privs rp JOIN role_tab_privs rtp ON (rp.granted_role = rtp.role)
WHERE rp.grantee = <theUser>
ORDER BY owner, table_name;
FROM dba_role_privs rp JOIN role_tab_privs rtp ON (rp.granted_role = rtp.role)
WHERE rp.grantee = <theUser>
ORDER BY owner, table_name;
24down vote
|
Assuming you want to list grants on all objects a particular user has received:
select * from
all_tab_privs_recd where grantee = 'SAK'
|
select distinct 'GRANT '||privilege||' ON '||OWNER||'.'||TABLE_NAME||' TO '||RP.GRANTEE
from DBA_ROLE_PRIVS RP join ROLE_TAB_PRIVS RTP
on (RP.GRANTED_ROLE = RTP.role)
where (OWNER in ('SAK') --Change User Name
OR RP.GRANTEE in ('SAK')) --Change User Name
and RP.GRANTEE not in ('SYS', 'SYSTEM')
;
from DBA_ROLE_PRIVS RP join ROLE_TAB_PRIVS RTP
on (RP.GRANTED_ROLE = RTP.role)
where (OWNER in ('SAK') --Change User Name
OR RP.GRANTEE in ('SAK')) --Change User Name
and RP.GRANTEE not in ('SYS', 'SYSTEM')
;