Oracle: USER – SCHEMA – Create / Profile/ Get DDL / Roles / Privileges (system e object

   USER – SCHEMA – Create / Profile/ Get DDL / Roles / Privileges (system e object)

–> Script Testati su Oracle 11g  <–

——————-
—  CREATE USER  
——————-
create user pippo     identified by        xxx
default tablespace   users
temporary tablespace temp
quota unlimited on   users
profile              default
account              unlock;
grant connect, resource to pippo;
grant create database link,
create view,
create synonym,
create sequence,
alter session
to pippo;
————–
— Profilo  —
————–

–>Il profilo di default assegnato ad ogni utenza è ‘DEAFAULT’ trovabile in dba_users:

select USERNAME, PROFILE
from dba_users
where username=upper(‘&nome_user’);

— >Per sapere I settaggi di un profile (in questo caso il profile ssegnato perDEFAULT a tutti gli schema)

SELECT RESOURCE_NAME,
LIMIT
FROM DBA_PROFILES
WHERE PROFILE=’DEFAULT’;

— Per modificare il profile:

ALTER PROFILE
DEFAULT
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED;
—————
—  GET DDL  
—————
–Dalla funzione dbms_metadata.get_granted_ddl return CLOB
set longchunksize 30000
set long 30000
show long
select dbms_metadata.get_ddl( ‘USER’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘SYSTEM_GRANT’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘OBJECT_GRANT’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘ROLE_GRANT’, ‘XBSESDBO’ ) from dual;
———————————————————– Data Dictionary Roles / Privileges (system e object)
———————————————————
dba_users      –> visualizza gli schema di un database
dba_profiles   –> visualizza I settaggi dei “profile”
dba_sys_privs  –> system privileges granted to users and roles
dba_tab_privs  –> object grants
dba_role_privs –> roles granted to all users and roles in the database
altre..
DBA_COL_PRIVS
————————————–
— Elenco Privilegi sulle Tabelle   —
————————————–
set line 250
set pagesize 400
column GRANTOR format a20
column OWNER format a20
column PRIVILEGE format a25
select count(*)     ,
OWNER       ,
GRANTOR   ,
GRANTEE    ,
PRIVILEGE
from dba_tab_privs
where GRANTEE like ‘%PIPPO%’   –User / Ruolo che riceve la GRANT
  and PRIVILEGE like ‘SELECT%’ –Privilegio Concesso all’Oggetto  — and owner      = ‘USER_PROPRIETERIO_OGGETTO_GRANTATO’  — and TABLE_NAME = ‘NOME_TABELLA_GRANTATA’
  — and GRANTOR    = ‘NOME_UTENTE_CHE_HA_CONCESSO_LA_GRANT’
group by
OWNER,
GRANTOR ,
GRANTEE,
PRIVILEGE
;
—————————–
— Elenco di tutti i Ruoli 
—————————–RUOLI: Non hanno un proprietario, una volta creati (da utenze con I diritti per farlo (‘grant create role to pippo;’) se si ha l’admin option (per default lo ha l’utenza creatrice) possono essere concessi ad alltri utenti.
select *
from dba_roles
order by role
;
—————————————
— Ruoli assegnati agli Utenti/Ruoli 
—————————————
Elenca I Ruoli elargiti a tutti gli utenti/ruoli del database
–>Solo Ruoli Assegnati ad altri Ruoli
select * from DBA_ROLE_PRIVS
where GRANTEE not in (select username from dba_users)
order by GRANTEE
;
—————————————–
— System Privilege assegnati ai Ruoli 
—————————————–
Elenca I System Privileges elargiti agli User/Ruoli.

–>Solo System Privilege assegnati ai Ruoli

select * from DBA_SYS_PRIVS
where GRANTEE not in (select username from dba_users)
–and PRIVILEGE like ‘%EXEC%’
order by GRANTEE
;
———————————–
—  RUOLI ASSEGNATI AGLI SCHEMA  
————————————->Quntità Ruoli (vision generale)
select count(*), GRANTEE, ADMIN_OPTION
from dba_role_privs
where ADMIN_OPTION=’YES’
group by GRANTEE, ADMIN_OPTION
/–>Elenco per Schema
select GRANTED_ROLE, GRANTED_ROLE, DEFAULT_ROLE
from dba_role_privs
where GRANTEE=’&1′
/
———————————————————-
— Users a cui gli è stato concesso il ruolo di CONNECT 
———————————————————-
set linesize 175
column PATH_OF_CONNECT_ROLE_GRANT format a40
select * from DBA_CONNECT_ROLE_GRANTEES
order by GRANTEE
;
—————————————————————-
—  Visualizza Solo per i Ruoli a cui gli User hanno accesso  
—————————————————————-
Se l’interrogazione viene fatta da un utenza che ha i diritti di lettura sulla Data Dictionary, allora potrà visualizzarli tutti, altrimenti vedrà solo quelli di sua competenza.
ROLE_ROLE_PRIVS –> roles elargiti ad altri roles
ROLE_SYS_PRIVS  –> system privileges grantate ai roles
ROLE_TAB_PRIVS  –> table privileges grantate ai roles

——————-
— DEFAULT ROLE  —
——————-

DEFAULT ROLE ALL — Solo I ruoli che sono stati elargiti all’utente sono abilitati per default quando l’utente stesso si college.

ALTER USER SCOTT DEFAULT ROLE ALL;

SQL> conn newuser/newuser
Connected.
SQL> select * from session_roles;ROLE
——————————
CONNECT
NEW_USERSQL> conn / as sysdba
Connected.
SQL> alter user newuser default role connect;

User altered.

SQL> conn newuser/newuser
Connected.
SQL> select * from session_roles;

ROLE
——————————
CONNECT

Both comments and pings are currently closed.

Comments are closed.