RUOLI - PRIVILEGI

-- Query individuazione dei ruoli
select * from dba_roles

-- Query utente
select * from dba_users   where       username like upper('%&username%')

-- Query ruoli associati ad un utente
select  *   from  dba_role_privs 
where upper (grantee) like upper('%&username%');

Grantee è il nome dell'utente che riceve le grant

-- Query privilegi di sistema associat ai ruoli
select * from DBA_SYS_PRIVS 
where upper (grantee)  in ( 'ROLE_OWNER_SCHEMA', 'ROLE_READ_ONLY','ROLE_READ_WRITE')

SELECT * FROM ROLE_SYS_PRIVS 
where lower(role) in  ('role_manager','role_submanager');

-- Query privilegi sugli oggetti associat ai ruoli
select * from role_tab_privs 
where role like 'R_FISC2020_ALL%'

-- Query oggetti associat ai ruoli
select * from dba_tab_privs 
where granteee like 'R_FISC2020_ALL%'

Grantee è il nome dell'utente che riceve le grant

SELECT   A.GRANTEE AS UTENTE,
         A.GRANTED_ROLE AS RUOLO,
         B.PRIVILEGE AS PRIVILEGIO,
         B.ADMIN_OPTION
FROM    DBA_ROLE_PRIVS A, DBA_SYS_PRIVS B
WHERE   upper(A.GRANTEE) LIKE upper ('%&USERNAME%')
AND     upper (A.GRANTED_ROLE) = upper (B.GRANTEE)
ORDER BY   1


grant CREATE SESSION TO equivale a grant CONNECT to


grant RESOURCE to   --> grant UNLIMITED TABLESPACE to

Non va bene questa grant per un utente perché concede il privilegio di unlimited tablespace cioè la possibilità di
creare una tabella su un qualsiasi tablespace e popolarla.

select * from dba_sys_privs where PRIVILEGE = 'UNLIMITED TABLESPACE';

Invece grant CREATE TABLE permette di creare  una tabella su un altro tablespace ma non di popolarla.
Ad esempio se si effettua una insert compare il messaggio:
ORA-01950: nessun privilegio su tablespace 'TSDAD'


Query individuazione privilegi associati a RESOURCE.
select *--privilege
from dba_sys_privs
where grantee = 'RESOURCE'



Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database