Friday, November 9, 2018

Privilege


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;
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;
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;

Pasted from <http://stackoverflow.com/questions/1298473/how-can-i-list-all-grants-a-user-received>

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'

Pasted from <http://stackoverflow.com/questions/1298473/how-can-i-list-all-grants-a-user-received>

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')
;

Monday, November 5, 2018

Kill rman


Kill rman
Friday, August 10, 2018
4:30 AM
SQL> select b.sid, b.serial#, a.spid, b.client_info
from v$process a, v$session b
where a.addr=b.paddr and client_info like 'rman%';


SQL> alter system kill session '592,12' immediate;